Taylor's Blog

Atypical ramblings

I Could Use Some REST

One of the areas I’ve been trying to improve in is my familiarity with enterprise environments. My dev friend Pete gave me this advice:

Pick some tech and do a “full stack” project. Doesn’t have to be big. Hell, it can be a website that keeps an inventory of what games you own. Nothing more than a CRUD interface to a DB. But being able to point to a project that shows that you have your toes dipped in all aspects is great if you’re just getting your feet underneath you. I wouldn’t worry too much about stuff being “enterprise.” 99% of enterprise coding is “take data from this thing, and put it in this other thing.”

If you’re looking for a project, create an app that connects to “the cloud.” Put it behind an API and do a web interface and app to interact with it. Most apps that aren’t a game are simply a native way to interact with some remote API. It’s MUCH easier to edit a page or DB entry than push out an app update.

Make an app that does hello world when you do a GET on /helloWorld. Do another app that you can POST some JSON payload to /helloworld/name with an ID. Then when you do GET at /helloworld/{ID} it says “Hello $NAME”

So to get myself better acquainted with new technologies, I’ve given myself a new project. I’m going to create an Android journal app. Users can write a note and submit it, and the app will save their note on a remote database. I plan on it having some sort of login and authentication which is something I have not done yet. I also plan on people being able to read other people’s posts. So it will be a bit like a simplified message board.

I’ve taken advantage of the GitHub Student Developer Pack which entitles me to $60 credit at DigitalOcean which I’m using to host a Debian server to will house my back end. Naturally, the front end will be written in Android Studio and I’ve been looking into the Volley HTTP library to send my GET and POST requests. This video has been very useful in helping me to Volley set up. On my server, I’ve gone ahead an got MySQL server up and running with help from this guide. To make sure the database was set up correctly, I connected to it using MySQL Workbench (I found it easier to configure than Microsoft SQL Server Management).

The next big decision I had to make was what framework to use to connect my app to the database. When talking with Pete, he opined:
I think decision paralysis really hinders beginning and junior developers. Too much time is spent trying to find the perfect framework when we don’t have the experience to really understand the pros and cons. That time is much better spent learning about using frameworks and what problems they solve.
With that in mind, I think I will trying going with Spring. I’ve looked at this getting started guide and it seems pretty straight-forward. In addition, Spring uses Java which is what I’m trying to improve on for Android in general, so it should give me some extra practice. Also, Pete mentioned that many enterprises use Spring, so it would probably be good to have on my resume.

One challenge I’ve had is setting up my development environment. In particular: how can I work on files using an IDE if they are stored on a remote Linux server? Fortunately, I learned about Win-SSHFS and thanks to this awesome guide, I was able to quickly set it up and access remote files on my Windows machine.

So far, things haven’t been to bad. It’s mostly been a lot of configuring. Next I’ll be installing Spring onto my server and following the aforementioned getting started guide to get it set up.
Updated: June 1, 2017 — 2:20 pm

Leave a Reply

Your email address will not be published. Required fields are marked *

Taylor's Blog © 2015