At Pixelmatters, we’ve been designing and developing iOS and Android Apps for more than 4 years now.
Today, we’re happy to share with the community some iOS development tools and services that make our development lifecycle more productive and fluid, allowing us to focus more on developing features, and less on secondary tasks. Also, we’re going to share where some of our inspiration comes from, like blogs and posts around the web, as well from books that we believe that every iOS Developer should take the time to read and explore.
Services
- Real-time analytics, Beta distribution and crash Reporting with Fabric.
- Testflight as Beta test distribution framework.
- Firebase is a mobile platform from Google. Contains features like database, data synchronisation, cloud functions, analytics and much more, helping mobile developers speed up the development process of an app.
- We use Github as hosting service for version control. We follow the Gitflow Workflow branching model.
- CircleCI is our go to choice for Continuous Integration and Delivery (CI/CD).
- Amazon AWS provides reliable and scalable cloud computing services with a pay as you go billing system.
- OneSignal push notifications delivery system has support for almost every development environments, also being super easy to setup and to configure.
Tools
- Just like most iOS developers, we use Xcode as our main IDE.
- For automating builds, signing and deploying processes, we use Fastlane.
- Sourcetree as our go-to tool for managing and interacting with git repositories.
- iOS dependency management with CocoaPods.
- Test API requests with Postman.
- When editing other files like Podfile from CocoaPods or fastfile from Fastlane, we tend to use Visual Studio Code, a powerful and lightweight code editor.
- Recently we found Sherlock, an awesome tool that allows us to edit constraints and properties on the iOS Simulator in real-time! For building UI programmatically, it’s a very neat tool that packs a bunch of features.
- If you need to check the database used by the API, we recommend DBeaver since it’s very easy to use and clean.
- When working with Notifications, Pusher comes in really handy when testing them.
- For analysing performance and memory leaks, Instruments does a great job with that. Although it’s hard to get familiar with it, the payoff is worth it.
Frameworks & Libraries
- Moya is a network abstraction layer written in Swift. It encapsulates Alamofire, allowing you to build your network layer in a more abstract way.
- RxSwift is the Swift version of ReactiveX, one of the most powerful existing function reactive programming APIs. RxSwift community is growing day by day and it’s an excellent and in our opinion easier alternative to ReactiveSwift when thinking about entering the FRP world.
- Navigation in iOS ? RxFlow will simplify our life. It’s a navigation framework based on a Reactive Flow coordinator pattern.
- For text processing and pattern matching we use Bumblebee. Converts text into NSAttributedStrings. Also, it provides support for markdown.
- If you don’t want to go directly to RxSwift or ReactiveSwift, Bond is a good starting point to the functional reactive programming world.
- Kingfisher is our choice when dealing with image download & cache. Inspired by SDWebImage but written in Swift.
- Heimdallr provides a Swift OAuth 2.0 client.
- Snapkit is a Swift autolayout DSL for iOS, successor of the Objective-C library Masonry.
- When we need to build a form, Eureka is our choice. If you’re interested in more custom elements, check the team repository to get some more powerful options.
- BraintreeDropIn provides a SDK to integrate payments in iOS apps using the Braintree platform.
- Do you like the iOS Maps App ? Pulley replicates the drawer.
- Swiftlint is our choice for linting, enforcing our code to follow our styleguide and conventions.
- We use Realm as a Core Data alternative. It’s fast, simple and cross-platform.
- Starscream is a WebSocket client library for iOS.
Blogs & other resources
- Trying to find a set of articles, videos and screencasts on trending topics of iOS Development ? Ray Wenderlich is one of the most famous places to access learning resources in iOS development. Tutorials are pretty well explained and always have resources so we can see the code running in Xcode. Also, the books are great to get a deeper knowledge about some topics.
- Do you want to start on RxSwift ? We recommend RxSwift: Reactive Programming with Swift.
- Swift Daily Tips is a github repository with some code snippets. Some of them are definitely useful! Take a look!
- Last but not least SwiftBySundell, NSHipster and Hacking with Swift have plenty of articles about the iOS & Swift trending topics.
That’s it, these are the tools that make our lives easier as iOS Developers! It may seem that there are too many, but believe us: they really help!
Thanks for reading. Any recommendations on different tools? Feel free to share your toolkit with us! 🔨🙂