On the 7th of May, I first stepped into Osmosys after having just passed out of my sophomore year at VIT, Vellore. To appease my university’s need for me to learn first-hand at a software company, and to fulfill my own thirst for learning, I joined Osmosys as a Software Development Intern.
In the two years I had spent in my university, I was never the hardcore programmer. I was interested in programming, but I could never find the time to actually code. I was always drawn to mobile programming and I had previously attended workshops regarding the same. So, on my first day, after all the formalities, when I was asked what my preferred field of programming was, I promptly chose to proceed with mobile programming.
This was the beginning to my internship which was filled with both learning and fun. I learned a lot of fascinating and interesting things here – from documentation and programming standards, to the more complicated nuances of database integration and the actual deployment of an application.
I have documented the highlights of my journey in a weekly manner, for my own clarity and for you, the reader.
Week 1: The Android week
Initially, I started working on some simple android apps to get the hang of development. I was then asked to work on open source projects on GitHub. I found an interesting project after searching thoroughly and I got myself assigned to an issue. I solved the issue and merged it with the master branch successfully.
Week 2: Project work begins
In a discussion, I was told about the project that I would be working on. I started sketching the app in my brain and on my drawing pad and tried to get a working understanding of what the app should look like, feel like and what it should do. I was then asked to prepare the initial documentation and mockups for the project and put my thoughts into words.
Week 3: App Development through Web Development?
I was to implement the project using Ionic Framework and Apache Cordova, which are the tools used to make Hybrid Applications. These apps work in the mobile’s WebView and hence are not bound by programming language restrictions, i.e., the same app can work on android, iOS or windows without requiring developers to recreate the app each time. This also meant that I had to learn web development.
Week 4: Improve, Experiment
The first batch of mockups I made, served functional purposes but were not visually appealing. I was asked to add colors and throw some flair into the project. This was around the time I created the first set of pages in the app after random experiments with Ionic. I decided that I was going to use Firebase as the back-end for the app.
Week 5: The Firebase Struggles
My second batch of mockups were accepted and I started coding religiously. Unfortunately, the Firestore database I was using, turned out to be highly unresponsive. Firebase’s authentication and verification were working as per their expectation but their cousin in Beta, created the first wall in my project. Firebase wasn’t a common tool in the office and the solutions on the internet didn’t seem to help. I was researching on databases I could use as an alternative to Firestore when I stumbled upon a partial solution.
Week 6 & 7: Code! Code! Code!
I expanded on the solution I found and realized that all my troubles would go away if I simply stop using the angularfire2 plugin and interact with firestore directly. Post this realization and its subsequent implementation, these two weeks went by in a blur of code. I was developing the app and almost halfway through Week 7, I had a functioning app. This was when I was told to start beautifying the app.
Week 8: The Final Week
The final week started off with me preparing the final documentation for the project. It is necessary for the developer who would be taking over my project to understand the nuances of my code (obviously!). I received a code review and incorporated those changes into the app. I had tested the app in only in an android environment so far. The real zing of a hybrid app is felt only when one sees their app flawlessly working in any environment. This was when I tested the app on iOS and it worked perfectly.
Now I sit at my desk, on my last day at Osmosys writing this blog as one of my last acts as a soon to be ex-intern. This journey helped me learn and improve my skills and it was definitely worth spending the entirety of my summer vacation here.
If I start listing out the impact each person in Osmosys had on me, this blog would exceed the word count of even traditionally long blogs. So, to everyone who answered my questions, to everyone who showed me the right path, to everyone who pointed out my mistakes and helped me correct them, to everyone who made this an effortless journey and to everyone who opened the door for me because my biometric wasn’t registered – Thank You!
Author: N S V Rohit, Software Development Intern