After we finished programming our website, we started thinking of the next step. We finished up with building an app for our company.
There are several reasons:
- People access the internet using their mobile phones more often than their desktops.
- App offers personalized experience by creating an account and receiving notifications.
- Showing future customers our App programming ability. So, they can trust our professionalism.
- Using app analytics can improve our future UX study.
Then, brainstorming phase had started. We thought about ideas we wanted to put in the app. We need compatibility between app and website according to UX and design. We also wanted users to have the ability to create an account.
After that, we started implementing. There were several phases we walked through:
- Picking database method: SQL databases are table based whereas NoSQL are documented based. We needed a distribution structure with small costs, fast implementation time and limited battery and CPU consumption. For these reasons we chose NoSQL.
- Picking synchronization method: We chose Google Play Services instead of Manual SQL because of limited time resources, secure connections and no dirty-records-marking in SQL which may get duplicated notifications.
- Notification display service: we had two options to provide notifications. Google Play Services & Alarm systems with inner database. We chose Google Play Services as a Medium. It provides some good benefits. You don’t have to worry about the delivery methods and auto delivery optimization but it has a limited ability to measure the impact of these notification. It also suited us more because of our limited implementation time and there was no integration required for either RSS nor REST.
- Phone Authentication Service: we had to choose between Facebook Phone Kit and Firebase Authentication. Our choice was Facebook Phone Kit. It helps people register using phone number or email as passwordless credentials with free SMS verification for a limited number of users which suited alpha and beta implementation phases.
- App wireframe: presenting a wireframe design for your clients is a great way of showcasing them your mobile applications and designs. It provided you to visualize your ideas on paper. Keep what make sense and get rid of others.
- Testing and delivering.
We faced several challenges while developing. They are:
- Didn’t have previous experience with Firestore DB.
- Didn’t have previous experience with Firebase notification API
- Didn’t have Prior Experience with JAVA Testing Methods Especially Unit, Instrumental and UI Based Testing within Android.
- Some Coordination issues in the team.
But, we had some advantages while working. They are:
- High fault tolerance
- Everybody knew what to do and when
- High communication between Team members
- Ability to overcome hard issues in short time periods.
Here’s all what we walked through while programming our app. You can see the result here and try it.