Diary about My first mobile app
Tags: beginners, sideprojects, devdiary, codenewbie
Published: 2019-05-26 16:26:27

---

title: Diary about My first mobile app
published: true
description: Personal record about making my first mobile app with Android Studio
tags: beginner, sideprojects, devdiary, codenewbie
cover_image: https://thepracticaldev.s3.amazonaws.com/i/r16xp7kh2iqxhjnwluvf.png

---

*See the sign "You Don't have any devices."? No, I don't. I feel a bit sad about it. 😢
This post will be a bit personal record about making my first mobile app with Android Studio. I think it was also my first serious project. It's still silly I think I could address it that way since I paid $25 to register as a developer on Google Play.*

1. End result
    [This](https://play.google.com/store/apps/details?id=im.juneau.discretemathformulas) is the end result. 

    ![Screen shot of my app](https://thepracticaldev.s3.amazonaws.com/i/mvgoauszu8tq3stgwvp6.png)

2. Motive
    It first, I wanted to make something like a [z-table calculator](http://davidmlane.com/hyperstat/z_table.html) or [Matrix calculator](https://www.symbolab.com/solver/matrix-calculator) and even tried to do a bit, but It takes me weeks only to figure out that is out of my current ability.

    Maybe it wasn't impossible. I know I should be explored outside of my comfort zone, but it was more like **Biohazard Zone** rather than just out of comfort zone. Yes, it might be not impossible if I prepare for the right equipment, But maybe it would take months, and I just wanted to test out what I can do right now, with a feasible concept, and not too much extreme extra.

    So, I decided to make a formula page app. At first, I think I should make it for Khan Academy's Precalculus, and I thought, I could even do it for my own College's Discrete Math & Statistics class.

3. Libraries
    - [Katex](https://github.com/lingarajsankaravelu/Katex): To display Latex in android.
    - [YouTube Android Player API](https://developers.google.com/youtube/android/player/): To play youtube videos.
    - [PhotoView](https://github.com/chrisbanes/PhotoView): For pinch zoom in image of z-tables / t-table. Yes, I wanted to more than just images, but Image will do the work for now.

4. Lesson from the previous project
    - Plan first: When I did the last project, After I almost finished initial functionality, I realized that there is too much repetition, so I had to totally refactor was almost totally redesign the whole structure.
    - Use Inheritance: As from the above lesson, I found that it's convenient to make a frame first and utilize it. It absolutely worked great with Android App since it is all about different Activities and Fragments and intents to deliver content.

5. Lesson learned
    - Using open source custom library: Yes, truth to be told, I haven't done it before.
    - Learning Different components With official document: Since the tutorial I took didn't cover fragments, I had to learn it with on my own. Funny fact is that I even made it works, but didn't use it since It didn't feel like a suitable place for the function I wanted. But the official documentation was really lovely.
    - Ability to write Latex syntax: Strange enough, It seems like the skill that has been improved the most. I have used Latex in Khan Academy and math.stackexchange before but never used it this much this intensely. I feel pretty comfortable with it now.
    - Read Documentation well: With Latex, I didn't read the whole Support Table, so I didn't know I can align equations with a custom marker until almost halfway, so I had to insert a bunch of white spaces at the beginning. In addition, I didn't see 'Try' section on its page, so I struggled with other Latex editors because the supported expressions were different.
    - Note taking is important: If I haven't summarized all the formulas when I was studying, I wouldn't even be able to decide to do this, since I have no data to plug in, after all.
    - Never change the name of Android application and company: It was really painful to refactor the app name and company name since built in refactor function some times didn't support for every single file.

6. Apps I want to make in future
    I would say [Z-table calculator](http://davidmlane.com/hyperstat/z_table.html) and [Matrix calculator](https://www.symbolab.com/solver/matrix-calculator), without hesitation. I really hope I could do it someday, whether with Java for Android, or something else.