{"id":305,"date":"2020-12-08T20:51:15","date_gmt":"2020-12-08T20:51:15","guid":{"rendered":"https:\/\/oqtacore.com\/app\/?p=305"},"modified":"2026-05-04T09:40:40","modified_gmt":"2026-05-04T09:40:40","slug":"native-mobile-apps","status":"publish","type":"post","link":"https:\/\/oqtacore.com\/blog\/native-mobile-apps\/","title":{"rendered":"What are native mobile apps"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">When you build a mobile app, you have a choice to go native way, or crossplatform way. In this article, we will take a look at both of them and explain in which cases native stack is the best way to go.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But before we start, let\u2019s give the definitions:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Native apps are apps that are written using native stack of the mobile operating system, for which the app is written. The app cannot be run on any other operating system.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Crossplatform mobile app &#8211; an app that is written using some medium language that encompasses functionality of multiple operating systems. This app will run on those multiple operating systems without any additional modifications.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_mobile_apps_are_better_than_online_apps\"><\/span><span style=\"font-weight: 400;\">How mobile apps are better than online apps<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Before describing the differences between mobile app stacks, let\u2019s think for a minute &#8211; do you even need a mobile app?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Online apps work on any platform, as they just need a browser. Some browsers like Google Chrome or Mozilla Firefox are ubiquitous, they have version for every possible platform and allow you to use all the most modern web technology for your needs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">What are the problems of online apps that can make you choose to build a mobile app?<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Then need always-on Internet access<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">They work slower<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">They cannot work in background (music players, navigation, etc)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">They require user to sign-in often<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">What are the strengths of mobile apps?<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">They are always up-to-date<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">They can track users\u2019 behavior without causing any issues to the user<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">They can give users different experience (completely different) based on geographical location; it is impossible on mobile stores<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">We really recommend you to build your first MVP as an online app. It allows you to have instant updates, track user behavior, and have the same experience on all platforms possible. Exactly what you need from an MVP! The only situation in which you have to go with a mobile app is when it\u2019s impossible to as an online app &#8211; good examples are Uber, Dropbox, Spotify. They need to run in background, and mobile apps do it much better than online apps\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Difference_between_iOS_and_Android\"><\/span><span style=\"font-weight: 400;\">Difference between iOS and Android<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">It is natural to think that the same app can work both on iOS and Android. Those are both mobile platforms, the devices are not so different, so what\u2019s the problem?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In reality, Android and iOS are very different. It starts with design language &#8211; Android has shadows and builds its experience on multiple layers of widgets. The user knows which widget is on the top layer, interacts with it, then closes it and goes to the layer below. iOS does not have shadows and offers flat design.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Apart from design language, technically the platforms are also extremely different. Android provides developers with a so-called Java Virtual Machine called Dalvik. Dalvik runs each app in an isolated environment and ensures that no damage to user\u2019s data is done. iOS\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_are_cross_platform_apps\"><\/span><span style=\"font-weight: 400;\">What are cross platform apps<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Cross Platform apps are such apps that are built using some intermediate language (or framework, which consists of language plus developer tools) that can be translated into other languages.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The problem with such approach is almost obvious &#8211; such apps can only do well things that exist on all platforms covered by the intermediate language. The more platforms are covered &#8211; the more limited is functionality. The same is true for cross platform games, for example &#8211; some platform-specific games on PlayStation might use the touchpad on a joystick as a game-defining feature, but not a single cross platform game would choose to do so, as Xbox does not have such a touchpad.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the most cases, when you <\/span><b>have to<\/b><span style=\"font-weight: 400;\"> build a mobile app, the crossplatform way is what you would want. We really want to emphasize that you shouldn\u2019t go native way unless you really have to. English is the language of international communication for a reason &#8211; it does not have many grammatical rules, but does its job. The same goes for cross platform languages.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"What_is_more_expensive_%E2%80%93_native_or_cross_platform_apps\"><\/span><span style=\"font-weight: 400;\">What is more expensive &#8211; native or cross platform apps?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Native apps are always more expensive. This simply follows from the fact that you need to have a separate app for each operating system.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you target just one platform (great example here is Instagram), you still will have to cover other platforms as soon as your app becomes popular. And it would imply additional costs and trouble at times when you will be 100% busy with the app growth.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"When_are_native_apps_better_than_cross_platform_apps\"><\/span><span style=\"font-weight: 400;\">When are native apps better than cross platform apps?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">This is a great question if you ask it &#8211; native apps are better only in some specific cases:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">When you need to squeeze every single performance unit from the device. It is usually the case with 2D and 3D games &#8211; the more cheap devices can run the game smoothly, the larger is the fanbase of the game<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">When you need to make the app to use as little battery power as possible. It is hard to imagine such an app, as low-performance apps will consume close to no power both with native and cross platform approach, especially compared to other apps on the device<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">When some platform-specific feature is used &#8211; on iPhone it can be Wallet, on Android it could be widgets on the main screen<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Which_developers_do_you_need_to_build_a_native_app\"><\/span><span style=\"font-weight: 400;\">Which developers do you need to build a native app?<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">You will need platform-specific developers:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For iOS &#8211; Swift or Objective-C developers<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">For Android &#8211; Java or Kotlin developers<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Also you will need a UI\/UX designer that is experienced in the target platform and knows its guidelines: HIG for Apple\u2019s and Material Design for Google\u2019s OS.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you build a mobile app, you have a choice to go native way, or crossplatform way. In this article, we will take a look at both of them and explain in which cases native stack is the best way to go. But before we start, let\u2019s give the definitions: Native apps are apps that [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_mo_disable_npp":"","yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"","footnotes":""},"categories":[2],"tags":[],"class_list":["post-305","post","type-post","status-publish","format-standard","hentry","category-featured-articles"],"acf":{"image":311},"yasr_visitor_votes":{"number_of_votes":0,"sum_votes":0,"stars_attributes":{"read_only":false,"span_bottom":false}},"_links":{"self":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":7,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":676,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/posts\/305\/revisions\/676"}],"wp:attachment":[{"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oqtacore.com\/blog\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}