Software

Six tech topics for software engineers to watch in 2018

Machine learning and Kotlin are just two of the tech and programming topics this iOS developer plans to focus on in the new year.

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).

SEE: Low code development: Is this the future of enterprise apps? (ZDNet)

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)

5. Kotlin

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)

6. Couchbase

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.

Also see

iphone-8-plus-39.jpg
Image: Sarah Tew/CNET

About Cory Bohon

Cory Bohon is an indie developer specializing in iOS and OS X development. He runs a software company called Cocoa App and is also a developer at MartianCraft. He was introduced to technology at an early age and has been writing about his favorite te...

Editor's Picks

Free Newsletters, In your Inbox