Insider's Guide To Udacity Android Developer Nanodegree Part 6 - Capstone Stage 1 |
Sunday, 19 November 2017 | |||
Page 2 of 2
Key Considerations
How will your app handle data persistence?
Describe any edge or corner cases in the UX.
Describe any libraries you’ll be using and share your reasoning for including them.
Describe how you will implement Google Play Services or other external services.
Next Steps: Required Tasks
Task 1: Project Setup
Task 2: Implement UI for Master Activity
Task 3: Build Master Activity functionality
Task 4: Next Activities
Task 5: Leftovers
Going through this process made me ponder whether, given there's a website already, is it worth the trouble of building a native app at all? Progressing through the Nanodegree, building native apps and drawing on that experience I've reached the conclusion that native apps have distinct advantages over their website counterparts. Let me explain. Apps feel more familiar because users can easily transfer their experience from using one to another. This is because they are based on predefined standards or frameworks, such as 'Material Design' in Android's case. Such frameworks make designing an application easier since they make use of standardized, as well as enhanced, UI components such as Collapsing Toolbars, Navigation Views, FAB's, Snackbars, Tab Layouts and more. On the web you don't get that sort of functionality for free. Furthermore, the Browser acts an Operating System of its own. Browsers render under a variety of engines and idiosyncratic properties which can make or break your website. Therefore the need for tools such as Modernizr, which tell you what HTML, CSS and JavaScript features the user’s browser can work with. On a native app you just have one Operating System to deal with, which regardless of version incompatibilities offers uniformity at the very least. And that's what matters most, the consistent behaviour across devices. The use of just one language, Java, Kotlin, whatever, for both back-end and front-end development is key. That's not the case on the web; you need at the very least to have knowledge of HTML, CSS, JavaScript, JQuery and a template engine. Then again there's the subsidiaries; CSS-grid, Flexbox or maybe Bootstrap? There's no shortage of frameworks too; React, Angular, Vue, you name it. Then what about the back-end? Building a dynamic website and not opting for JavaScript through Node.js would require knowledge in yet another language like Perl, Ruby, PHP, C#(?) and its associated MVC framework. Smadeseek, for example, runs on Perl and the Dancer framework. And what about state? It's much easier to maintain it in a native app, something that goes a long way in offering its users a richer and smoother experience. Saving favourites, preferences, credits and state recovering after exceptional situations are a cakewalk. Then testing. You can use your favourite Unit testing framework, fire up your emulator and load your custom devices versus the non-standardized testing across browsers and their versions. Of course, what is common to either website or native app is accessing a backend database, and while accessing data through a RESTful API unifies their requirements, doing the same for a data warehouse closely attached to the application's logic requires more effort in the case of a website. Smadeseek, for example, lives on a VPS and maintains a directly bound connection to a self-hosted MySQL instance. In contrast, out of the box specific Android extensions for cloud dbms, such as Firebase, once more give the advantage to native apps. Looking forward to Capstone Stage 2 and the actual implementation.
More InformationRelated ArticlesInsider's Guide To Udacity Android Developer Nanodegree - 1 Insider's Guide To Udacity Android Developer Nanodegree - 2 Insider's Guide To Udacity Android Developer Nanodegree - 3 Insider's Guide To Udacity Android Developer Nanodegree - 4 Insider's Guide To Udacity Android Developer Nanodegree - 5 To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
Comments
or email your comment to: comments@i-programmer.info
|
|||
Last Updated ( Monday, 20 November 2017 ) |