Pizzaiolo is a demo iOS app built with Swift 3 and Xcode 8. I've been occassionally working for iOS since late 2013, but have never invested that much to be able to experiment with techniques and architectural choices. This app gave me the liberty of doing so. Even wrote my thoughts on the journey in this article.
While being a fairly simple app, I've learnt so much in there that I wrote an article describing the different parts and how they're put together. If you're interested in ReactiveX, MVVM or Realm, check the source code and maybe you'll find something new. Especially to newcomers to ReactiveX, this will put into perspective how observers can be set up to handle networking and merging with local data, binding to UI elements, creating reactive collectionviews with just a few lines, etc. In addition, you'll find out how I built views programmatically, used SnapKit for Autolayout constraints, created custom viewcontroller transitions, a custom launch screen animation, worked with tableviews, collectionviews, scrollviews and much more.
Opening the app in your own computer is pretty simple; it just needs a tiny bit of prep work. Make sure you have Xcode 8+ installed and if you don't, it's time to upgrade anyway. This project uses CocoaPods for dependency management, so you'll need that too. If you aren't using it already in your project, take my word and give it a try.
- Clone the repository
$ git clone git@github.com:fadion/pizzaiolo-ios.git
- Install dependencies. This may take a few minutes.
$ cd pizzaiolo-ios
$ pod install
-
Open
Pizzaiolo.xcworkspace
with Xcode. -
Run the Node.js server to fill the app with data, so you can test it in the simulator or device. Instructions on the pizzaiolo-server repository.
The "Pizzaiolo" name is a made up name for this specific project. It doesn't refer to any existing brand or company.