As an iOS developer, I was very excited that the iPhone X, Apple Watch Series 3, and iPad Pro were added to Apple’s product lineup in 2017. Apple has set itself up for a great 2018 with iOS 11, macOS High Sierra, and the various new technologies in each platform.
These are some of the technologies that interest me the most, and a few of the things that I want to learn in 2018.
SEE: Job description: iOS developer (Tech Pro Research)
1. Machine learning
Machine learning was one of the hottest tech topics of 2017, and Apple and Google had different approaches for investing in this space. Android is capable of doing machine learning on the device, but relies heavily on cloud-based machine learning. Apple designed a specialty chip that is inside new iOS devices and is capable of powerful on-device machine learning.
SEE: How to implement AI and machine learning (PDF) (ZDNet/TechRepublic special report)
In 2018 we’ll see an increasing number of companies invest in machine learning as it becomes even more powerful and useful to the average mobile app developer. All developers should consider how machine learning could potentially impact their apps and make them more useful.
For more information about machine learning, check out these links: Apple Core ML, TechRepublic’s Google Cloud Platform smart person’s guide, and TechRepublic’s TensorFlow smart person’s guide.
2. Augmented reality
Augmented reality (AR) exploded onto the scene this year like never before thanks to machine learning, new hardware, and better frameworks for third-party developers to create their own AR experience; in particular, iOS 11’s ARKit brought advanced AR to iPhones and iPads. ARKit enables iOS developers to create new AR experiences in their apps by automatically detecting planes and helping place digital objects in physical spaces at the correct size with the correct lighting effects.
Google released a preview of its new AR offering, dubbed Google ARCore, but it currently lacks the breadth of device support that Apple was able to achieve by incorporating ARKit into iOS 11 (ARCore is limited to Pixel and some Samsung models).
3 and 4. Xamarin and C#
Xamarin provides the ability to write apps in C# and deploy the apps across multiple platforms, including macOS, tvOS, iOS, watchOS, Android, and Windows. As an increasing number of apps are service/subscription-based for revenue, it has becomes more important to write apps that support multiple devices if you have a cross-platform service.
Xamarin, which has been around for a while, is great for when you don’t want to learn the ins and outs of each platform you’re developing for, and instead choose to learn C# and some basics of each platform. Xamarin takes care of abstracting many of the layers that are typically involved in multi-platform development to help developers push out cross-platform apps quicker.
I’ve never been a huge supporter of using non-native tools for development work. I firmly believe that if you’re developing for iOS, you should do that in Xcode with Swift/Objective-C; if you’re developing for Android, you should use Android Studio and Java/Kotlin; and if you’re developing for Windows, you should use Visual Studio. However, I think Xamarin is an interesting technology that could benefit a lot of developers and is one of the reasons that I’m investing time in learning it in 2018. I also plan to learn C#, which can be used across other platforms besides Xamarin.
Xamarin is available in Visual Studio for Mac and Windows, which makes the barrier of entry very low for anyone interested.
SEE: Xamarin iOS: A Master Guide to App Development in C# (TechRepublic Academy)
Kotlin is the hot new language that is interoperable with Java and Android and can be used to create Android apps and to develop on other platforms that utilize Java. Official support for the Kotlin language on Android was announced at the Google I/O event, and anyone who is starting to develop for Android that is scared away by Java should definitely look at the language. Kotlin has a very modern feel (like Swift), which makes it easier to transition between multiple platform languages.
SEE: The essential guide to Android happiness begins with Kotlin (TechRepublic)
Couchbase is a database technology that I’ve recently become quite interested in for its multiple platform integration and ability to synchronize data on more than one device in lightning speed through a server gateway.
This NoSQL database is geared towards the enterprise, though it has free and paid options, which are great for beginning developers and for large corporations. If you have a lot of data that you need to persist to an object graph and synchronize over the internet to multiple devices, Couchbase may be for you.