Telerik blogs
fast track

In the first part of this series, we learned about mobile web application strategies and techniques like Responsive Web Design. Then, we took a look at how hybrid applications fit as a solution for mobile development. To finish the series we’ll be exploring Native application development.

Native app development can be summarized as creating an application to be used on a specific platform, including its associated devices and app store. Generally this is done to gain all of the benefits a platform has to offer, maximizing application performance and staying true to a platforms design language. Platform benefits and device-specific features are able to be used, since the target device is a known constant.

Choosing native means using APIs designed specifically for the platform can result in exceptional application performance. Developing for a native application also means designing for native. Because the UI components used in a native app are specific to that platform, they will look and behave like other apps built using that platform.

microsoft-apple-android

The benefits of working natively do come with a cost. Choosing to go native will require platform-specific software tooling, skills and even hardware. If the plan is to target multiple platforms then a specialized software development kit (SDK) and integrated development environment (IDE) will need to be used for each platform. Additionally, when developing for Apple iOS, Apple hardware is required for development as the software needed to build iOS apps, Xcode, is only available on Apple’s OS X operating system.

multi-tool

Image courtsey of Jim Pennucci
https://www.flickr.com/photos/pennuja/5364124040/in/photostream/

The following table lists the platforms and the associated development tools and languages.

Platform IDE Language
iOS Xcode Objective-c and Swift
Android Eclipse, IntelliJ, Android Studio, etc. Java
Windows Phone Visual Studio C#

Each SDK requires extensive knowledge of a particular set of programming languages, APIs and tooling. Because of the depth of knowledge necessary to produce a native application, a dedicated developer or team may be needed for each additional platform ​for which you intend to develop. In addition, separate code bases need to be maintained for each platform supported. To address this concern, the cross-platform native approach can be used.

Cross-Platform Native

Cross-platform native development aims to reduce the complexity of native app development by ​enabling code to be shared across platforms. Using this approach ​gives developers freedom from SDKs; write one code base and use native API code. Cross-platform native applications also use platform-specific design languages so the app is visually consistent with the platform.

Technology IDE Language Platforms
Native Script & Telerik Platform (no Mac required) Web browser, desktop client, Visual Studio, Sublime Text JavaScript, CSS, XML iOS, Android, (soon) Windows Phone
Xamarin (Mac required) Xamarin Studio, Visual Studio Native App – C#Hybrid App – HTML, JavaScript, CSS iOS, Android, Windows, Mac and more

NativeScript

Telerik NativeScript is a free, open source project used to develop cross-platform native applications using JavaScript, CSS and XML. With NativeScript the entire platform functionality is available in JavaScript. This means standards-based JavaScript is used to write a single codebase that can be shared across iOS, Android and (soon) Windows Phone.

NativeScript

To allow cross-platform UI development, NativeScript uses XML markup. The UI supports rich two-way data binding powered by Polymer expressions. The UI is written once and rendered to the appropriate design language of the destination platform. All UI elements can be selected using CSS selectors so style sheets have the ability to control the visual properties of an application.

NativeScript promotes skill reuse because its development stack consists of JavaScript, CSS and XML, which closely align with web development skills. Also, NativeScript is not dependent on any one platform, so developers are free to use their favorite text editor or IDE.

Telerik Platform

deploy-mobile For developers looking for an end-to-end mobile development solution, NativeScript deeply integrates with Telerik Platform. Telerik Platform contains everything needed to build an application from: project templates, prototyping, build  and debug, back-end services, push notifications, deployment, feedback, analytics and more.

Telerik Platform also ​​provides developers with choice, as each of these services can be used with the developer's favorite IDE. Telerik Platform allows for rapid application development and continuous deployment of mobile applications, without the need for additional hardware.

Xamarin

Xamarin is cross-platform native development software for teams who prefer to work in C# or F#. Xamarin is used to create native iOS, Android, Mac and Windows Phone apps with C# and F#. Xamarin enables app logic sharing across multiple platforms using Shared Projects or Portable Class Libraries (PCL). For app development, Xamarin has two offerings: Xamarin Wrappers and Xamarin.Forms. Of the two choices, Xamarin.Forms works across all three mobile app platforms, and is ideal for UI and code sharing.

ios-mobile

Additional components are available in the Telerik UI for Xamarin. UI for Xamarin uses the Xamarin.Forms technology, which makes it possible for developers to build native iOS, Android and Windows Phone apps from a single shared C# code base as well as use their XAML skillset for the UI. Telerik currently offers three controls to speed up app development time: Chart, Calendar and ListView. Also, developers who wish to target only iOS or Android have the option of using our Xamarin Wrappers offering.

Native Considerations

Native development, unaided by cross-platform development will have little to no code and skill reuse between platforms. Due to each platform having it’s own specific development methodologies, native development requires the widest variety of skill sets. This broad skill set will require multiple developers or teams to completely cover all app ecosystems.

NativeScript and Xamarin can greatly reduce development time by ​enabling developers to create apps for multiple platforms from a single code base. In addition, using NativeScript with Telerik Platform can provide an end-to-end development experience that greatly reduces the complexity of native development while staying true to the target platforms. When choosing a cross-platform solution, consider aligning the team's current development skills with those required by the solution.

Native Fast Track

The following resources can help your team get up to speed:

TLDR

  • Native development targets a specific platform, devices and store
  • Native development is done to gain all of the benefits a platform has to offer
  • Developing native apps for multiple platforms requires skills, code and experince that does not translate between platforms
  • Cross-platform native development speeds up cross-platform development by sharing app logic and UI code, while using less tooling

In This Series

This was the final part of a series of blog posts on how to fast track your mobile development project. If you would like to review, you can jump back to the first part of this series where we learned about mobile web application strategies and techniques like Responsive Web Design. You can also find the second post, where we explored the fast track to ​hybrid app development.


About the Author

Ed Charbeneau

Ed Charbeneau is a web enthusiast, speaker, writer, design admirer, and Developer Advocate for Telerik. He has designed and developed web based applications for business, manufacturing, systems integration as well as customer facing websites. Ed enjoys geeking out to cool new tech, brainstorming about future technology, and admiring great design. Ed's latest projects can be found on GitHub.

Related Posts

Comments

Comments are disabled in preview mode.