GithubHelp home page GithubHelp logo

developerrowan / healthapp Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 113 KB

Final project for my Mobile Applications Development course - and, consequently, one of the last projects to earn my associate's degree.

Java 100.00%

healthapp's Introduction

HealthApp

Final project for my Mobile Applications Development course - and, consequently, one of the last projects to earn my associate's degree.

A retrospective

Since this is one of two of the last projects I will ever do prior to completing my associate's degree, I thought this was worthy of a retrospective. Not just on Android, but on myself as well. This wasn't required for the project - I just wanted to write this for my own sake, and maybe one or two curious readers who stumble upon this.

I Used to Hate Android Development (and still kind of do)

I came into this project absolutely despising Android development. I had learned how to do it back in 2015 - around 8 years ago at time of writing - and the ecosystem was a complete nightmare to develop on. Errors abound, a resource hogging IDE, horrible support for emulation. Android development just was not in a good place then (many could argue this point for days on end, but trust me - it was terrible). It's really why I was so drawn to web development (more on that later).

And to be honest...it's still kind of a terrible experience. For the most part, I have found myself having to learn the quirks of the Android ecosystem better and accept them. That's not a good thing, per se...it more so reflects on how far I've come personally as a developer since then.

I have to work around things every day for my work, and my own personal projects - yes, even when working with the technologies / stack I love! If there's one thing I've learned over almost 10 years of learning software development (to be fair, 5-7 good years), it's that there is no perfect stack. It might work today - but eventually you, your team, your manager, or your stakeholders will want something that will prove your technology choice to be useless for the task. It's inevitable; anyone who hasn't gone through this is either very lucky or lying to you.

Android Studio is slow. It hogs resources. But so does Visual Studio. So do most modern web browsers. Eventually when you spend as many hours with your hands on a keyboard as I have (which I would reckon adds up to a year of my life, if not more), you kinda learn things are slow. Add more RAM, programs take more RAM. It is what it is. Maybe that's something to be said about how flawed our current software design approaches are - for decades we have been able to rely on Moore's Law to speed up our programs. But now Moore's Law is no more; the responsibility for slow programs will soon fall almost solely on our shoulders.

Being able to put together a basic CRUD app in less than 12 hours of work is pretty impressive, so I'll hand that to Android. The codebase is phenomenal, maybe even kind of sexy. I honestly don't think I've enjoyed writing code in any framework in so long like I have with the Android SDK. Hat's off to you, Google and contributors. Google and JetBrains, however - speed up your damn IDE!

Why I Wouldn't Continue Learning Android Development

Working with native app development was a stark reminder to me of why I got into web development all these years ago to begin with, and still am very passionate about it to this day. Native app development is expensive and time consuming, especially for a solo developer. Just 5 or 6 years ago, native apps were still the norm for mobile interaction with a service; or, if not a native app, a mobile-specific version of a website (how many "m." subdomains do you see anymore? Probably not many!)

I started learning web development in 2015, because of this awesome thing (at the time...long story) that was released called Google AMP (Accelerated Mobile Pages). They were basically, well, accelerated mobile pages. Super fast loading times for websites, and they were sort of the precursor to our PWAs (Progressive Web App) and SPAs (Single Page Applications) we have today. In fact, the term PWA was actually coined in 2015 also - 2015 was all the rage for making the web fast as f**k for mobile devices, apparently.

Why was this so exciting to me? I realized very early on this was the future of software development. The first programming language I learned was Java, and its motto, famously, is "Write Once, Run Anywhere." Now we were entering an age of "write once, run anywhere" for the web. Mobile-first design quickly became standard with the launch of AMP and the popularization of PWAs, meaning a site was built from the ground up to be optimized for a mobile device before anything else. There's no need for native apps anymore - your website is the app!

Mobile vendors quickly started supporting this philosophy also by allowing users to put a website onto their home screen, which would display the website's icon. It's now an app. You just click, and you're there. Just so amazing. This is standard stuff today, so I don't think people always take the time to appreciate this anymore.

Is Native App Development Dying?

It really depends who you ask. Personally - I would say yes.

With the advent of technology such as WebAssembly and WebGPU, we can bring near-native speed applications to the browser. This includes games, too, and this technology is only going to keep getting better.

We have frameworks which can generate a native app from JavaScript / TypeScript, such as Flutter, so you can very easily work with the same language to convert your website into a native, mobile version.

Mobile-first and PWA technologies cut costs greatly for development. You don't need to hire teams for iOS, Android, and web development. You just need one team - web developers. Same for desktop applications. Effectively, a well-developed website (web app!) can replace native apps on both computers and mobile devices. So. Friggin'. Awesome.

Closing

So...I likely would not find myself with the need for native / Android development anytime soon. Maybe...ever again honestly. To many, that sounds like a crazy statement, or a sorrowful one. To me, it's exciting. We are rapidly approaching a day where user experience is going to be unlike anything in the past - and that's our entire goal as software developers. Constantly improve user experience. At least, it should be.

healthapp's People

Contributors

developerrowan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.