Today I was asked: Should I learn to code in Swift and what can I build? Swift 1.0 (http://www.swift.org) was launched in 2014 by Apple and it is a multi-platform programming language for iOS, macOS and Linux (but not Windows). Swift has gone through rapid changes recently and Swift 4.0 is the latest stable version. Swift updates can break a number of previous swift coding standards set in Swift 1.x, 2.x and 3.x so don’t get comfortable.
Should a beginner learn Swift? Yes if you only want to develop apps for iOS and macOS and ignore Windows and Android platforms. Apple has released a learn to code in Swift app that will make learning swift much easier http://www.apple.com/swift/playgrounds/
Previously apple recommended developers use the Objective C language to code and compile apps for iOS and macOS. Objective C has been in production since 1983 and is very complex (loads of squiggles, square brackets and legacy classes).
Most smartphones and tablets run Android, not because they are better but because they are cheaper (that’s my opinion). A top of the line iPhone 6S+ costs $1500 where a reasonable Android phone will set you back about $130 to $400. I personally think Apple devices are faster, better and more secure but if you are developing you need to publish apps on android also. Apple devices are supported for a lot longer than Android devices ( Android support lifetime v Apple iOS ). Even the 5-year-old iPad 2 is getting the iOS 10 software update in September 2016. In 2017 iOS 11 does not run on an iPad 2.
If you wanted to native develop android apps you would need to learn Java in the https://developer.android.com/studio/index.html IDE. Be prepared to be confused as the Android Studio has a steep learning curve.
Ok so where do beginners start.
What Companies look for when hiring programmers
Jumping right into Swift, Java, Objective C or Lua may not be a good idea if a plain old website will do. It depends on what you want to develop before you start coding. All developers should be able to knock up a website and database before jumping into making mobile apps. PHP ( http://www.php.net ) and MySQL ( http://www.mysql.com ) are good options for beginners making websites.
http://www.udemy.com and http://www.w3schools.com/ is a great place to go to learn more about coding. If you want to see what the Pro’s are doing check out http://www.sitepoint.com are great places for learning WHAT you need to know fast.
But I really want to develop a mobile app.
Development platforms like the Corona SDK http://www.coronalabs.com are a great option for beginners as it is easy to pick up and is super fast and supports eye-popping OpenGL animations and apps along with business apps. Corona allows you to code in a programming language called Lua ( https://www.coronalabs.com/learn-lua ) and compiles your app to the iOS/Android/macOS or Windows desktops. How cool is that.
Another possible solution is using the Electron technology
Corona wraps a common interface (API https://docs.coronalabs.com/API/index.html) over each platforms API so your code calls the corona API and when you compile your app the platforms native API methods are called.
Corona has great guides and support pages:
https://docs.coronalabs.com/guide/programming/index.html – Getting Started
https://coronalabs.com/blog – Keep up to date with Corona and read guides on many topics.
https://coronalabs.com/resources – Corona Resources.
https://www.youtube.com/user/CoronaGeek – Weekly Corona video podcast.
https://forum.coronalabs.com – Talk to hundreds of Corona developers and ask questions.
https://docs.coronalabs.com/api/index.html – Corona API
What tools do you need
- A Mac Computer with a retina display.
- Sublime text Editor https://www.sublimetext.com/3 (and Sublime to Corona Plugin https://coronalabs.com/products/editor/ )
- Source Version Software http://www.zenaware.com/cornerstone
- A good code snippet saving app is http://snippets.me/
- Patience and drive.
Knowing what you want to develop will narrow down the technologies you need to learn.
- If you want to make websites learn HTML and PHP.
- If you want to build business apps inside corporations learn Visual Studio.NET
- If you want to make mobile apps fast learn Corona.
- If you want to make advanced iOS apps learn Swift
- If you want to make advanced Android apps learn Android Studio
- If you want to make online database learn MySQL
Check out my guides here on:
..and many more free guides here.
Still reading? Check out the beginner guides on Sitepoint.
Donate and make this blog better
Ask a question or recommend an article
V1.2. Added short link