|Insider's Guide to Udacity Android Developer Nanodegree Part 7 - Full Stack Android|
|Written by Nikos Vaggalis|
|Monday, 23 April 2018|
Page 8 of 8
Native vs Web
In the end, there's a lot of effort required to build and release a native app.Is it really worth the effort given that I've already had a full blown WebSite, despite that it had been build as proof of concept having rather slim chances of commercial success?
A colleague had been using browserA (which it was is not important) and had logged into his bank account.He found that despite paying a bill in full, there was an annoying message keep popping up telling him that there's still some amount due.He called the help line which confirmed that the bill had been paid in full and that there wasn't any amount due.He closed the phone and walked out.Couple of days later, he logged into his bank account again upon which he was greeted once more with the very same message!Called the help line again, whose representative couldn't figure out what was really going on so she passed the request on to one of the web site's developers who in turn re-confirmed that there wasn't any amount due.But the colleague could still see that damn message;by that time he had really started worrying!
Being aware of the browsers' incompatibilities as well as having a hunch, I advised him to switch browsers and try again.Logging in with browserB there was no message any longer!
And what about state? It's much easier to maintain in a native app, offering the mobile users a richer and smoother experience. Saving favourites, preferences, credits and state recovering after exceptional situations are a cakewalk. Other reasons include the gains in performance due to offline support and accessing the device's hardware directly.
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.
Security wise despite that native apps are not immune to vulnerabilities according to OWASP's Mobile Top 10, XSS, prevalent on Web sites or even mobile apps using WebViews, is not one of them.
Saying that, there's also a handy Mobile App vulnerability Scanner.Testing my app against it revealed that it communicates with 3 remote hosts (Google's servers) therefore it may be exchanging data with them.
This is not bad at all considering that better known and commercial apps have been diagnosed with serious security flaws.
"A mobile app, on the outside, is nothing but a copy of an ecommerce website that runs on a mobile device. On the inside, however, a mobile app offers a convenient yet personalised environment for customers to search and purchase the required products without much hassle."
taken from Here’s Why Your e-Commerce Store Needs a Mobile App
Finally, apps also 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.
However in both cases, be it mobile app or WebSite, if your underlying data is not up to par don't expect a commercial success.Similarly, smadeseek's backend's database is obsolete, already, since the device specifications stored are at least 2 years old and have been painfully entered using a custom made CMS I've built with Xataface.
So in order to have any chance of even trivial commercial success, I must first find a better way for keeping the database up to date.
This sums up the ways a native app can prove beneficial either on its own or alongside a website, therefore courses like this one are really worth the effort. Graduating though doesn't put a lid to the story.It should be heralded as the beginning of a, hopefully, prolific career in Android app development.
Initially, the Nanodegree gave me the foundations, the know-how to turn on the ignition and find my bearings. Graduating from it signified the beginning of an era where I can take matters into my own hands.
Weighing the alternatives, I found that developing for Android isn't a subject widely taught at traditional brick and mortar institutions, but even if it was, enrolment would be probably too expensive. And what about learning through books? I would considered it as a plausible option if developing for Android was as solid and well defined as a programming language is. The problem here lies in the fact that Android is a fluent ecosystem comprised of dynamic components (lifecycle management, states, events, services, resources, layouts, views, loaders, UI/background threads), interconnections and patterns, which collectively form a tangling not easily conveyed through the static pages of a book.
Self-paced, high quality, and evolving MOOCs, such as the Android Developer Nanodegree, form the modern shape of education and hold distinct advantages over their traditional instructor-led counterparts.
While at University or now at work, I've attended quite a few instructor-led lectures or seminars that would span several days or weeks and the major problem with them was always feeling the stress of having to be constantly focused or risk getting left behind.Of course the teacher's quality is the other major factor, who is also burdened with having to examine several subjects in a limited time frame, hence impossible to do so in depth. The Nanodegree being self-paced for the student and being taught by a team including Google engineers solves both issues of the limited time frame and teacher quality. And what about the subtle and elaborate bugs in doing the exercises which won't start creeping until long after the lecture has ended? By then it's too late to get in touch with the teacher.What are you then supposed to do - research on your own, ask on Stackoverflow, or google for relevant results. Udacity on the contrary offers support through mentor-led forums serving personalized and quality help, accessible even after graduating.
Let's not forget that graduating also gets you a Certificate. But how valuable is it? The IT industry, highly dynamic as it is, is being constantly reshaped by new inventions, trends and tools, all striving to become the new Kings of Software Development. Prime examples are Vue, Angular, React, Kotlin and so on, trends that a classic BSc issued by a traditional brick and mortar institution is not able to keep track of. The answer lies in seeing through the hype and adopting a life-long model of education which Udacity is able to provide.
With regard to whether the Nanodegree is recognized industry-wide on a par with traditional diplomas, ptroviding you with the same chances of landing a job, I can't have an opinion since all the career options offered by Udacity are exlusively US based and I don't live in the US. Nevertheless, such a hard earned Certificate validates both the skills acquired and the real world experience gained through building quite a few Android apps, even releasing them to the Playstore. Were I to look for a new job, this is where I'd direct all potential employers; and that by itself is the biggest gain.
or email your comment to: firstname.lastname@example.org
|Last Updated ( Monday, 23 April 2018 )|