Skip to content

Having studied iOS application development and Swift for the past three years, I believe that there fails to exist a single learning path to gaining proficiency in this domain. This is my attempt to create one.

Notifications You must be signed in to change notification settings

kjaisingh/high-school-guide-to-ios-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

A guide for High School students to learning iOS/iPhone Application Development with Swift

Having studied iOS application development and Swift for the past three years, I believe that there fails to exist a single learning path to gaining proficiency in this domain. This is my attempt to create one.

Just about a year ago, I published my first learning guide for high schoolers on Machine Learning and Artificial Intelligence. As it was well-received by the general public, with many individuals indicating to me that it helped their progress tremendously. As a result, I decided to do the same for another sub-domain of Computer Science that I have a stark interest in - iOS Development and Swift.

The main purpose of Swift is to build applications that can be published on the Apple App Store. Being a relatively new language, Swift has been developed by Apple to be a language that priortizes simplicity, efficiency and interpretability over all, which is what makes it trump other languages such as Java and Objective-C when it comes to developing applications.

In this guide, I outline a series of steps that, from my experience, will allow one to go from a beginner level to an advanced one in a matter of months. I do believe that iOS Development is one of the most promising areas in software development, and thus would encourage any individual interested in this area to read this guide.

So, let's get to it.

1. Understanding the basic syntax of Swift

Like any other programming language, Swift has a syntax unique to itself. While I've never been an advocate for memorizing the syntax of any language, I do believe that it is important for one to immerse themselves with the very basics prior to exploring a language.

The advantage of Swift is that its syntax is trivially easy - it shouldn't take more than a day of exploring to get familiar with it. Swift probably has a simpler syntax than any of the major languages out there (bar Python, maybe).

To learn the syntax, I'd suggest going through the TutorialsPoint guide. It provides a quick, high-level overview of basic aspects of Swift, and can be completed within a few hours.

After that point, it's helpful to have this Github-based cheat sheet bookmarked (as well as the Swift Documentation website).

2. Gaining proficiency with developing applications using Swift

For this step of the process, I'd recommend none other than Angela Yu and The London App Brewery. Their course is usually available on Udemy for around $15, and it is well worth the price.

The course guides you from the very basics of putting together View Controllers in order to make an app, to the more complicated aspects of application development: working with APIs, understanding how to implement a backend and improving the user interface. It does so in an extremely practical manner too - Angela explains the concepts and theory as you build an app, allowing for you to see how to implement theory in practise.

It'll probably take a month, maybe even a little more, of dedicated programming, but once you've completed this course, you are bound to have a fundamental grounding in Swift. Not only this, but you will have a series of completed projects to refer to for completed code as you continue building your own projects down the line.

3. Learn X, and then build your own project incorporating X

iOS development, and Swift, provides access to so many functionalities and libraries that a single course like Angela's can never cover everything. As a result, it is useful to learn the theory for a host of these aspects through tutorials, implement them in short hacks and thus gain a solid grasp of their underlying applications.

Youtube channels like Brian Advent, Lets Build That App and CodeWithChris provide great resources for learning these.

To start off with, I recommend learning and implementing applications incorporating the following Swift aspects:

  • CoreML: This allows you to integrate Machine Learning models into your iOS applications. You don't need to have any prior experience with Machine Learning, as many trained models are pre-built.
  • ARKit: This allows for the creation of augmented reality features in your applications.
  • Core Animation: This provides smooth animations and quality graphics without burdening the processor it is running on.
  • Sprite Kit: This is used in making iOS games, and is used for drawing in two-dimensions.
  • Core Data: This allows your to manage the model layer objects within your applications, though it is a relatively advanced concept.

There are many more frameworks, libraries and functionalities that I haven't mentioned, though you can find some more through the following Github repository.

4. Find a problem, and solve it via an iOS Application

For the final 'learning' stage, I'd recommend building a significant application, which will probably take about a month of continued development.

Typically, the main purpose behind an iOS application is to solve a problem, whether it be saving time, reducing complexity or improving the outreach. As a result, the best way to learn how to create your own application is by finding a problem of personal significance to you, planning an approach to solving it and then implementing this solution as an iOS application.

My personal first project was an app called 'Probbase' - it attempted to solve the problem of the limited resources that high school students are given to revise for their exams with. It allowed for users to scan in sheets of questions given throughout the year, sort them into a database of subjects/sub-topics and eventually access them again when it came time for exams. A friend of mine's first project was an application that sounded an alarm to wake you up only when a football match was close or interesting - if it was a boring match so far, it allowed you to sleep through.

If you are out of ideas for what to build, look to websites like the following for ideas. However, the more personal the issue is to you, the more engaged you will feel with developing it.

While you should be able to implement significant portions of the application using your existing knowledge, you will likely run into times when you are unaware of how to implement a functionality. During times like this, Google will come in handy. Just remember though, Swift allows you to implement almost any kind of functionality that you can think of - never be put off by an idea because you don't think it can be done. Rather, you probably just aren't aware of how it can be done. Google can help solve this problem for you.

It is helpful to go through the process of publishing your first personal app to the App Store. While it is tiresome and at times does seem over-complicated, it is a useful skill to learn. While Angela's course does provide an outline for how to do so, you could also check out the following article.

5. Keep building, and don't stop.

Once you've had experience building a fully-fledged application, there is no limit to what you can build in Swift. There's a few routes you can go down.

  • Going personal. You can choose to continue building projects of personal significance to simply improve your overall understanding of Swift. I suggest publishing all created projects on a platform like Github, as it improves your online outreach and status.

  • Going commercial. Many feel that creating applications is not very useful unless you begin to actually publicise these creations, and potentially even monetise them. If you truly wish to make an application that it meaningful to others, you should learn how to extend their outreach. Whether you'd like to create a business or not using this application, it is up to you, but it does require far more non-programming skills than you have been accustomed to so far. You could look into the sources for a headstart: Business Daily, Forbes and StyleLab.

  • Going freelance. If you wish to use your iOS development skills to generate an income, freelance is a great way to do so, particularly when you already have a full-time commitment to studies, high school or another job. Sites like Upwork, Toptal and Elance provide platforms to secure job, but if you are just starting out with your freelance work, I think that it is better to personally reach out to companies in your area or those you have connections with, and ask if you could help by building an iOS platform for them. You'll need a host of completed projects to show as proof of your abilities though.

Conclusion

Learning iOS development is easier than it seems, particularly for a high school student. What makes it so difficult for many people is the lack of direction that they are provided with when learning the art - I hope that this guide provides a solution to this. With dedicated practise, consistent creations and an innovative mindset, I do believe that anyone can succeed in the domain of iOS application development within the space of a couple months.

As always, if anyone has additions, suggestions, queries or feedback, feel free to write to me @ kj.jaisingh@gmail.com.

About

Having studied iOS application development and Swift for the past three years, I believe that there fails to exist a single learning path to gaining proficiency in this domain. This is my attempt to create one.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published