These days it’s possible for anyone to develop an iOS app, especially with the advent of Swift; great learning resources can be found online, but iOS programming is a broad topic, so you need to expose yourself to the topics of interest and to know where to start.

If you don’t know how to code, you can find many great resources and tutorials online. If you do, you need to get familiar with Apple’s development tools and guidelines. The best way to start is with developer’s guide – here you will find information on how to build your first app, along with tools you need and concepts and best practices. This might be discouraging for those who have little or no experience in programming, but it’s good to be introduced to concepts and knowledge you are not familiar with as it’s easier to understand what and how you should continue learning.

iOS development is done primarily in Objective C and Swift, and Apple’s IDE (Integrated Development Environment) for iOS apps (and Mac) is Xcode, the graphical interface, which is free, and you can download it from the Apple’s site. If you have an experience in Java or c++ and c# programming and object-oriented languages, it becomes easier to apply what you already know from one platform and use it in another. Whether you use Objective C or Swift, or other languages, it’s up to you. However, if you need more information, tutorials or guides to cover the basics you should start with the best resources for learning iOS development. We have created a list of the best sites and courses to help you start.

Apple’s official starting guide – Here you will find all information on how to set up Xcode, about structuring your app, implementing, and finally submitting to the App store.

Introduction to Swift – If you are new to iOS development, this is a good place to start with.  You can also check out Swift Essential Training on Lynda.

Apple’s Development Videos – Apple provides great resources for learning with video from WWDC, whether about various parts of development, tricks, and tips, or basic tools.

Stanford’s Courses – These classes are probably the best free online courses. This year they released new courses including Swift programming language. The classes cover iOS 8 development, interface design, animation, power management, and more.

Ray Wenderlich’s Tutorials – A great learning blog with many high-quality tutorials on programming. It covers various topics, but you can learn a lot about Objective-C and Swift.

Code School – Here you can find the basics of iOS development and some good books on various topics.

Building Mobile Applications – Podcasts offered by the Harvard University are an introductory course to building mobile applications. The course has twelve lectures including iOS development across multiple devices.

CocoaPods – The dependency manager for Objective-C and Swift projects with thousands of libraries to help you scale your project.

Designing great apps – Apple has a set of design and interface guidelines; they have collected great talks from WWDC on a design that will help you get started. Additionally, check out Apple’s Human Interface Guideline to see how to make a well-designed app and what Apple is looking for in the design and a guide for designing interface in iOS 8.

Apple’s API – It is good to be familiar with different APIs so you can integrate your app with Apple Pay or HealthKIt, and more. Apple has a set of review guidelines, so you should check App Extensions, HealthKit, HomeKit and Apple Pay Guidelines.

objc.io – A magazine that covers one particular subject with in-depth analysis of technical topics, the best practices, and techniques for OS X and iOS development.

NSHipster – An entertaining weekly journal that documents useful yet overlooked APIs and Objective-C features.

GitHub – A collaboration tool and a go-to place for collaborative work. Here you can share you code with over seven million people, invite beta testers to try your app, learn how to write better code and more. It’s very easy to link Xcode and make it accessible to other people.

StackOverflow – It’s always good to connect with people through a programmer community and the technical Q&A site.

Whether you are new to programming or iOS development, you should understand that learning capacity is significantly improved by combining learning experiences. Everyone learns differently and have their learning style, but when it comes to programming, learning the same material by reading, talking and discussing with others, watching videos, coding or trying to code, or making assignments is a good way to learn.