{"id":514,"date":"2018-12-03T08:44:36","date_gmt":"2018-12-03T08:44:36","guid":{"rendered":"https:\/\/alternative-spaces.com\/blog\/?p=514"},"modified":"2023-05-12T09:19:16","modified_gmt":"2023-05-12T09:19:16","slug":"how-to-choose-the-right-tech-stack-for-a-mobile-application-part-ii","status":"publish","type":"post","link":"https:\/\/alternative-spaces.com\/blog\/how-to-choose-the-right-tech-stack-for-a-mobile-application-part-ii\/","title":{"rendered":"How to Choose the Right Tech Stack for a Mobile Application &#8211; Part II"},"content":{"rendered":"<p>The\u00a0<a href=\"https:\/\/alternative-spaces.com\/blog\/how-to-choose-the-right-tech-stack-for-a-mobile-application-part-i\/\">first part<\/a>\u00a0of this article gives the context of software development technology choices and some clues for choosing a right mobile app backend technology. Time to talk about the client-side technology stacks.<\/p>\n<p dir=\"ltr\">Client side or front-end is where people will interact with your product. Mobile app development platforms are going to play a crucial role in its development. When selecting the platform, the team should take into account at least the following aspects:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\">features and functionality of multi-channel (mobile apps, web, and wearables) and multi-platform (operating systems and devices) options;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\">the ease of integration with APIs and backend systems;<\/p>\n<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<ol>\n<li dir=\"ltr\">\n<p dir=\"ltr\">integration of core mobile backend services (offline synchronization, geolocation services, push notifications, token management, authentication, certification, etc.)<\/p>\n<\/li>\n<\/ol>\n<p dir=\"ltr\">Regarding your business needs, you\u2019ll have to select a tech stack for one of the fundamental mobile app architectures.<\/p>\n<h2 dir=\"ltr\">Native Mobile Technology Stack<\/h2>\n<p dir=\"ltr\">A native mobile application is designed to perform on a specific mobile OS. Besides the faster performance and higher security, such apps come with greater responsiveness, gesture control, device notifications, access to the device\u2019s camera, GPS, contacts, and other hardware\/software, and the ability to work offline. Native mobile app development is deemed to be more cost-effective as well.<\/p>\n<p dir=\"ltr\">Currently, the leading platforms are iOS and Android.<\/p>\n<div>\u00a0iOS Platform<\/div>\n<div>\n<p dir=\"ltr\">The technologies are Objective C and Swift. The open-source Swift is newer and evolving quickly. Its code is simple and intuitive for beginners or experienced developers working with other languages. Hence the growing number of developers and companies that favor it for building iOS and macOS applications.<\/p>\n<p dir=\"ltr\">The recommended integrated development environments (IDE) are:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Apple Xcode: The IDE provides integrated documentation, support for Git repositories, source code editor to transform and refactor code more efficiently, a graphical UI builder, and a robust built-in testing engine for creating applications for all Apple platforms. Xcode is free of charge.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">IntelliJ AppCode: It\u2019s fully compatible and interoperable with Xcode and supports Objective-C, Swift, C and C++, JavaScript, XML, HTML, CSS, and XPath. The IDE comes with strong refactoring capabilities, on-the-fly code analysis, debugging, and support of several testing frameworks. The subscription prices start at $89\/year, but AppCode is more stable than Xcode, and the ability to generate and change code quickly saves much time.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<h3 dir=\"ltr\">Android Platform<\/h3>\n<p dir=\"ltr\">The technology is Java or Kotlin. The latter\u2019s abilities are similar to those of Swift. Google backs Kotlin, so it may be the future. The recommended toolkits are:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Android Developer Tools for Eclipse IDE: The ADT plugin provides a guided project setup, tools integration, custom XML editors, graphical UI builder, emulators, and test automation support. App development with ADT is arguably the quickest way to start. The plugin is free, but compatible versions of the Eclipse IDE and Android SDK must be installed first.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Android NDK: The Android Native Development Kit facilitates the implementation of application parts using C or C++ which compiles to native code. Developers working on certain mobile apps can reuse code libraries written in those languages. Although such code requires higher level skills, it\u2019s more stable and faster to execute. The tooling is also free of charge.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Android Studio: Android Studio\u2019s code editor provides code completion for Kotlin, Java, and C\/C++. There\u2019s also an efficient visual layout editor,\u00a0template-based wizards for common application components, a rapid emulator for different configurations and features, built-in profiling tools, and abilities to reduce the app size and create from a single project build variations for different devices. These and other features facilitate speedy and more productive development on all devices. Android Studio is free to download.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">According to Toptal\u2019s\u00a0Hypergrowth Tech Stack Report 2018, iOS is the front-runner among mobile platforms prioritized by hypergrowth startups.\u00a0An iOS mobile application generally turns out to be less expensive to build than a similar Android app. Some companies decide to start with an iOS app, and if it proves successful, create a version for Android. If you decide to launch on both platforms at the same time, some crossover can lower the total cost. Often, there will be a common server-side architecture. Besides, if the team resolved major issues during the first app development, the same team should build the second one faster.<\/p>\n<div>\u00a0Cross-platform Mobile Apps<\/div>\n<div>\n<p dir=\"ltr\">Such applications can be downloaded from any app store to run on several mobile OS. They are created using a combination of web and native technologies. Some popular frameworks for creating cross-platform apps are:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Adobe Flex: Flex is an open-source application framework that promotes rapid development with extensive mobile and traditional components. The created applications run consistently across Android, iOS, and BlackBerry Tablet OS. They can also access the devices\u2019 GPS, camera, local database, etc. Adobe Flash Builder is an Eclipse-based IDE that further facilitates the development process with code templates and generation, signature tooling, on-device debugging, and mobile simulators. Flash Builder 4.6 is available starting at $249.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Corona: Corona is arguably the most advanced 2D mobile app development platform. It\u2019s optimized for performance at every core level and is free to use. The framework is based on the lightweight, fast, and powerful open-source Lua scripting language. The developers can call any native (C\/C++\/Obj-C\/Java) library or API using Corona. They can create a project once and publish it to virtually every phone or tablet and even connected Apple TV, Fire TV, and Android TV. Corona is also a publishing and user acquisition service. It means you can find users for your app or game even without an established marketing budget.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Godot: Godot helps create games on any desktop OS. The engine is free and open-source. It uses a Python-like scripting language and offers versions supporting C# 7.0 and C++. There is a built-in editor with syntax highlighting, real-time parser, code completion, and integrated documentation. A built-in debugger helps\u00a0explore\u00a0and modify projects on mobile devices. It\u2019s easy to deploy and export the products to most platforms and to create custom builds.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Unity: Great even\u00a0beyond gaming, Unity allows creating applications for numerous platforms, as well as hybrid apps. The IDE provides enhanced built-in support for audio, animation, and physics. Ready-made pieces of applications are available at the Asset Store. There\u2019s a free version for beginners, but monthly subscriptions offering more advanced features start at $35 per seat.<\/p>\n<\/li>\n<\/ul>\n<p>It\u2019s worth emphasizing that tools like Corona SDK, Godot, Unity, and Unreal Engine help create 3D graphics, UI animations, and Augmented Reality for amazing-looking mobile apps.<br \/>\nBuilding an application for several platforms can give your business a competitive advantage and help reach out to a broader target audience and increase the sales. The code repeatability also helps reduce the costs. However, support and expansion costs can be quite unpredictable with such apps.<\/p>\n<div>\n<h2 dir=\"ltr\">Hybrid App Development<\/h2>\n<p dir=\"ltr\">Hybrid apps look like native ones, but they are developed using the popular HTML5 and CSS or JavaScript. Then the app is placed into a wrapper allowing it to run natively on a device.<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" class=\"aligncenter size-full wp-image-515\" src=\"https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/techP2.jpg\" alt=\"mobile technology stack\" srcset=\"https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/techP2.jpg 1024w, https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/techP2-150x94.jpg 150w, https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/techP2-300x188.jpg 300w, https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/techP2-768x480.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p dir=\"ltr\">The popular toolkits include:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Adobe PhoneGap: The open-source framework from the Apache Cordova team allows reusing web development skills for quick hybrid app development. Native device functionality is exposed via JS APIs. Cordova is the core of PhoneGap; developers may build in the cloud without installing a native SDK. A robust plugin library lets extend the apps&#8217; capabilities.\u00a0Basic PhoneGap functionality and Cordova are free of charge.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">AppGuyver Steroids.js: Steroids.js was created to combine PhoneGap\u2019s solution with access to native UI components, navigations, and animations. The tooling can be used to create HTML5-based applications with rich functionality, high performance, and other characteristics of a native experience. With Apache Cordova as its core, Steroids.js is free too, but additional cloud-based services can be purchased.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">React Native: Facebook\u2019s open-source UI design library is one of the top mobile JavaScript frameworks. It brings many\u00a0advantages of React\u00a0web application development into the creation of mobile apps. Its reusable \u2018native components\u2019 compile directly to native counterparts of an Android or iOS app. Also, if you need to improve an existing application but don\u2019t want to overhaul it, you can incorporate React Native components into the existing code. Third-party plugin compatibility allows accessing the device\u2019s functions while using less memory and loading faster. React Native\u2019s library includes Flexbox CSS styling, inline styling, debugging, and support for deploying to App Store and Google Play.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">The advantages of hybrid apps include easy portability, multi-platform compatibility, and access to various hardware\/software capabilities through plugins. An application with a single codebase for multiple platforms can help you reach a broader audience at a lower cost.<\/p>\n<p dir=\"ltr\">According to the same\u00a0Toptal\u2019s survey, 15% of hypergrowth companies were using React Native (Android\u2019s share is 11%, and PhoneGap\u2019s only 1%). Moreover, companies favoring React Native were more likely to grow faster than those prioritizing other platforms.<\/p>\n<div>\u00a0However, remember that HTML5- based apps have the limitations of in-browser caching. You should decide what type of behavior you want from the mobile application in high latency and low bandwidth network, and define the response time, acceptable query time, and data processing time of the application in the Service Level Agreements (SLAs).<\/div>\n<div>\n<h2 dir=\"ltr\">Wrapping Up<\/h2>\n<p dir=\"ltr\">The choice of the mobile technology stack determines both the product&#8217;s qualities and the speed and cost of its development. Before making a choice, it\u2019s important to consider the product, project, and market requirements, as well as to study the various technology stacks currently in use.<\/p>\n<p dir=\"ltr\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"678\" class=\"aligncenter size-full wp-image-516\" src=\"https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/backend.jpg\" alt=\"mobile app backend technology\" srcset=\"https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/backend.jpg 1024w, https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/backend-150x99.jpg 150w, https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/backend-300x199.jpg 300w, https:\/\/alternative-spaces.com\/blog\/wp-content\/uploads\/2018\/12\/backend-768x509.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p dir=\"ltr\">Speed is an essential one-size-fits-all criterion when choosing the best technology stack for a mobile app. Speed is a critical factor for the best user experience. If the mobile application for your startup takes too long to code and test, you may fail to make it to the market on time. Finally, the faster your app development, the cheaper it is for the company. Here are a few pieces of advice:<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">If good user experience is a deciding factor for you, opt for the speed, convenience, and ease of browsing that native mobile apps provide.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">If there is a deadline, you can increase the iteration speed by using a language or framework that promotes rapid development.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">For server-side development, it\u2019s better to opt for a mature and reliable full-stack technology. The popular LAMP stack with\u00a0<a href=\"https:\/\/alternative-spaces.com\/blog\/advantages-of-web-development-with-ruby-on-rails\">Ruby<\/a>\u00a0or Python as the programming language is a good option.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Try to engage mobile developers that have an understanding of the challenges in each layer of the system. \u2018Full-stack developers\u2019 are the best at it because they build both mobile app frontends and backends. However, they are harder to find, more expensive, and if working alone, can hardly speed up your app development.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Instead of spending time and money on scalability issues at an early stage, you can attend to those once the application has crossed the appropriate size threshold.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li dir=\"ltr\">\n<p dir=\"ltr\">Generally, startups should focus on getting an MVP as quickly as possible. A simple, lean technology stack is a better choice for that.<\/p>\n<\/li>\n<\/ul>\n<p dir=\"ltr\">Unfortunately, there are no cookie-cutter technology stacks that work for everyone. The optimal stack for your mobile solution depends on your business situation, and it\u2019s always best to consult the professionals.<\/p>\n<p dir=\"ltr\">Content created by our partner, Onix-systems.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The\u00a0first part\u00a0of this article gives the context of software development technology choices and some clues for choosing a right mobile app backend technology. Time to talk about the client-side technology stacks. Client side or front-end is where people will interact with your product. Mobile app development platforms are going to play a crucial role in [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":517,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/posts\/514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":5,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/posts\/514\/revisions"}],"predecessor-version":[{"id":2620,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/posts\/514\/revisions\/2620"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/media\/517"}],"wp:attachment":[{"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/media?parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/categories?post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alternative-spaces.com\/blog\/wp-json\/wp\/v2\/tags?post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}