LunarLincolnLunarLincolnLunarLincolnLunarLincoln
  • Home
  • Process
  • Services
  • Work
  • Writing
  • About
  • Contact
  • Home
  • Process
  • Services
  • Work
  • Writing
  • About
  • Contact
Native versus Hybrid efficiency graph
Apr
06

Native vs Web Apps

  • Posted By : Patrick Goley/
  • 0 comments /
  • Under : App Advice, Coding

When building a software product for mobile, there comes a time early on when you must decide between building a native application or a responsive web app. When making such a decision, it’s very important to understand the implications of going one way or the other. A native app is typically more expensive to build, but the extended capabilities and high speed execution often makes it necessary or at least advantageous for certain products. Today we’ll explore a few benefits of building native apps to help make this decision easier for anyone setting out to build a new mobile product.

blog-42

Why go native?

Direct Hardware Access

Icons8One huge advantages of natively built applications is they have direct access to many hardware features that web apps simply do not. While HTML5 has brought easy access to the camera and microphone with the <input> tag, these elements simply output a file and don’t give you access to the media in real-time. If you want to build fun camera filters or do any kind of signal processing, you’re much better off in the native realm.

While web apps have some access to media capturing hardware, they don’t have any access to some of the other sensors on the device. For example, native apps on iOS have full access to all HealthKit data (should you allow them) collected by the motion co-processor and other activity trackers, which are always working whether your app is running or not. Native apps can also use geofences and other location-based triggers to provide context-aware behavior and offline notifications, which can draw your user’s attention back to your app at opportunistic moments.

Blazing Fast Execution

200 (4)Native apps can work more efficiently because they run directly on the hardware, meaning there’s very little overhead to performing computation. This can make a huge difference when doing lots of graphical work or anything that is computationally expensive. While hardware-targeting makes applications less portable, it allows them to really take advantage of the processors they run on, giving you the high resolution and fluid graphics you see in native games and media apps today. Apple’s graphics library Metal is a great example of this, being designed specifically for the GPUs in Apple’s products to achieve maximum performance.

User Experience

There’s usually a clear difference in appearance and quality between native and web-based apps, as web apps lack the responsiveness and familiar UI elements of a native app. While web apps can certainly accomplish a lot, the extra layer of separation brought by running in a browser or web view rather than natively means the app can’t respond as quickly to things like touch events. This accounts for the slight lag you experience when interacting with the UI of web-based mobile apps, which amounts to a less-than-stellar user experience. Also, users may not pick up on custom UI controls from the web when they are used to a consistent experience from native apps on their platform, which can lead to usability problems. If the user feels like they’re swimming upstream to use your app, they probably won’t keep at it for long.

Offline Functionality200 (1)

One clear limitation of web apps is the necessity to download them over the internet each time they are loaded. Since native apps are installed once and can store tons information on the device, they can provide all kinds of functionality without an internet connection. iOS apps can even preemptively load data before the user opens the app through silent push notifications that “wake up” the app to retrieve new data.

Even with an internet connection, the first few seconds of a web app experience often consist of spinners and sluggish stylesheets causing elements on the page to jump around as it loads. This requires a measure of patience from your user, which might be too much to ask from some users especially after navigating through a few pages. With user attention spans getting shorter and shorter, you need to capitalize on every second they spend in your app, creating value for them and not putting them on hold to download and render bloated web pages.

"We're getting really close to ready" – the false dream of hybrid apps pic.twitter.com/xyvXT3qNao

— Bill Morein (@wmorein) May 5, 2015

In short, while native certainly isn’t the right choice for everyone, there are a quite a few cases where it’s necessary or at least beneficial. It’s important to consider these implications not only for the current state of your product but also for it’s future, as it would be unfortunate to commit to a web-based platform only to have to rebuild later when you need native-only features. While historically writing native apps have meant coding for one platform at a time, there have been big developments in native, cross-platform solutions such as Xamarin, now backed by Microsoft, and React Native, brought to you by Facebook. These solutions, while still growing, hope to deliver the fully native experience without limiting you to a single platform which can greatly reduce the cost of certain projects.


Mar
23

Mobile Madness – The Code

  • Posted By : Jennifer Bennett/
  • 0 comments /
  • Under : App Advice, Business, Coding

The results are in and the winners from yesterday are: Limor Fried, Erica Sadun, Jake Marsh, and Jake Wharton. Here is your updated Bracket.

[separator type=”” size=”” icon=””]

On to the third bracket of Mobile Madness 2016 with the numbers, the code, the languages and platforms. FULL STACK BABY!

First up: The Kings of the Mobile Kingdom

iOS vs Android

iOS and Android have been battling it out in the mobile space from day one. Globally, Android has a whopping 84.7% marketshare while iOS has only 13.1% (Q3 2015). Having multiple hardware manufacturers and OS distributions, Android provides many options to the end user, but at the cost of a consistent and reliable experience between them. iOS can deliver a high quality experience across all devices because Apple is fully in control of the design and production of their hardware and software, but it comes with a higher price point and fewer options.

AndroidvsiOS

So which wins? Beauty or Breadth of Market? Answer the twitter poll here

[separator type=”” size=”” icon=””]

Second Bracket: Everything to Everyone: Cross Platform 

React Native vs Xamarin

React Native is a version of Facebook’s React.js, developers can write javascript that controls native UI elements among other things. React has been praised for it’s architectural design and the resulting increase in developer productivity. Xamarin, recently acquired by Microsoft, is a cross-platform development solution for writing native apps in C#. It comes with a robust IDE called Xamarin Studio that makes building cross-platform apps a breeze. One major difference between the two is that React Native is open source, while Xamarin is not only closed source, but requires a monthly subscription to use (but you get real support!).


react-logo-1000-transparent

RDXWoY7W_400x400

 

Who knew we’d bit pitting Facebook against Microsoft in a mobile development battle. What do you think of these unlikely platform contenders?  Answer the twitter poll here

[separator type=”” size=”” icon=””]

Third Bracket: Languages in the Key of C

Objective C vs C++

While both languages are in the C family, Objective-C and C++ have some huge differences. Objective-C is a dynamic language where everything compiles down to C code that uses the Objective-C runtime library. C++ is usually compiled to assembly and has no runtime library which means it’s generally much faster. Most Objective-C programs are now compiled with ARC which will manage memory for you, whereas a C++ developer must be very careful of how they allocate and free memory in their program. Objective-C has proven very productive for writing high-level code such as UI or business logic. C++ is less productive but much more powerful when you need to work at a low level, like when implementing high-performance graphics or audio processing.


url

CPlusPlus

High brow or low power? Which C will it be? Answer the twitter poll here

[separator type=”” size=”” icon=””]

Fourth Bracket: Old Kids and New Kids

Java vs Swift

Java is generally accepted as the most widely used programming language today, and has been for some time. Swift is quite new on the scene, which only hit 1.0 in September, 2014. Swift has been acclaimed for it’s use of functional programming and value types which can help simplify problems in the minds of developers. Java works mostly with objects and reference types and only recently added functional programming capabilities through lambdas. Swift is entirely open source whereas only some Java implementation are (see OpenJDK). Swift still has much to prove for general use outside of iOS and Mac apps, but support from the open source community as well as big players like IBM is driving adoption for the language at a rapid pace.


Java7VM

icon

Answer the twitter poll here


Recent Posts
  • Copious Communication
  • Initial Questions for a New Mobile App Project
  • Gif TV: A LunarLincoln Product
  • Onboarding other peoples code
  • What’s in a name?
  • Don’t build it all. Picking a Platform.
  • Talk to your Users
  • Design for Fat Fingers
  • A new look
  • Hourglass for Jira
Archives
  • May 2021
  • September 2020
  • November 2019
  • October 2019
  • June 2019
  • April 2019
  • February 2019
  • January 2019
  • October 2018
  • August 2018
  • June 2018
  • April 2018
  • January 2018
  • October 2017
  • August 2017
  • June 2017
  • February 2017
  • January 2017
  • September 2016
  • July 2016
  • April 2016
  • March 2016
  • February 2016
  • October 2015
  • September 2015
  • July 2015
  • May 2015
  • February 2015
  • December 2014
  • November 2014
  • September 2014
  • May 2014
  • April 2014
  • January 2014
  • December 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • December 2010
Categories
  • Agency
  • App Advice
  • Branding
  • Business
  • Business
  • CaseCollage
  • Coding
  • Design
  • Design
  • NSVille
  • Uncategorized
  • Web Design
Copyright LunarLincoln 2023. All Rights Reserved