About a year ago, I learned iOS development by following a course on Udemy and reading various tutorials online. This taught me a lot about building iOS apps using the Swift language. But once the tutorial was over, I was left with one question, what now?
This article is my attempt to answer that. Here I list 4 different kinds of apps you can try to build once you have finished learning iOS application development.
What’s different about these apps compared to the courses and tutorials is:
- There’s no guide! You have to figure out how to build everything yourself, searching on the internet for solutions when you hit a road block. I don’t know of a better way to learn.
- These are simple enough that a new developer can be expected to complete these with some effort. But these are not toy apps. Apps similar to these are available in the app store, many are paid apps, and they are loved by users judging by the reviews and ratings.
- They let you learn how to integrate all the different things you have learned into a coherent whole. The courses and tutorials teach one concept at a time. These apps require you to bring all that knowledge together into one app.
- These apps use iOS technologies that are useful in most of the apps you will build in your career. Practicing building these apps will make you better and let you develop faster in your job.
1. Weather app
Create a weather app that shows the weather of the users current location, plus some other places they can add.
Allow the user to add a list of locations where he wants weather from. Store these using CoreData. Create a slide out menu similar to https://www.raywenderlich.com/78568/create-slide-out-navigation-panel-swift to allow user access to settings, and the list of locations they have added.
You’ll learn how to use:
- CoreLocation to get the users location
- Convert location coordinates to city name using CoreLocation reverse geocoding
- Talk to an API to get the weather data. Use https://openweathermap.org/current
- Storing app data in a database using CoreData
- Creating slide out menus. Useful to show navigation in when you have more than a few navigation destinations and can’t display them in a tab bar. But too little to use a UINavigationView like the iOS settings app
2. Twitter clone for inter-office communication
Create a Twitter like micro-blogging app, but limit the stream to smaller groups only; i.e. no public timeline.
The signup process should be something like Slack, where the first person to join creates a company account, and then others join in to the same organization. They can then use the app to stay in contact with each other; without having the outside world interfere.
For the datastorage and authentication, you should use Firebase; a service that provides a pre-built backend for mobile applications without needing you to code anything.
This will help you practice:
- Communicating with an external API from your iOS app
- Displaying a feed in your app. You can use a UICollectionView or a UITableView to display the stream.
- Handling authentication in an iOS app. A lot of apps now have features that are only available to logged in users; like saving items to a favorites list, saving past searches, settings that sync between different devices, etc. This is an important skill to practice.
- Using Firebase as a backend for your applications. If you’re an iOS only developer, you are constrained in the type of apps you can build by yourself to those that don’t need a backend. Firebase allows you to work around that by providing a pre-built backend that you can use to create many different types of apps that just need simple backends.
- Working with realtime data (the public feed) and keeping the users timeline screen updated as new posts are added by users.
3. Tetris clone
Well designed games do well on the app store in terms of revenue. Most developers won’t be creating games in their day jobs or side projects; mostly because a game is a very large undertaking and the success rate for indie games isn’t great.
But it’s still a fun project. Here’s a tutorial that walks you through the steps to create a fully working Tetris clone:
This will teach you a lot about iOS development, especially SpriteKit (the graphics/game development API by Apple), and working with gesture recognition.
4. Password manager
Build a simple password manager app (like 1Password) that allows users to save an encrypted list of their accounts. For a simple app, allowing the user to save just their username, password, and website name and URL is enough.
The first time the user opens the app, ask them for a master password. Use this to encrypt their password entries before saving those to disk. Don’t store the master password!
Next time the app is opened, ask for the master password again and try to decrypt the entries on disk.
You can use CoreData to store the entries. For information on encrypting data you can use this tutorial as a starting point.
To go further, let the user authenticate using Touch ID/Face ID.
You will learn:
- Saving encrypted data using CoreData.
- Authentication using Touch ID or Face ID.
Do you need help with your own iOS application? Or do you have an idea you’d like to get developed by an experienced team?
Reach out to Agile Leaf and let’s talk!