I need many applications that are quite simple and quite useful but either they aren’t available anymore on the android store, don’t work properly, or are filled with so many ads that no one actively uses them. Also the rise of fake reviews and ratings makes sure that I will never reach that genuine app ever. It’s much easier for me to build such things than to keep hunting them, or so I assume.
All apps I make will be ad-free, however I am going to steal the idea from PPSSPP and make a paid version of the app with literally no difference at all except the app-icon which will be in gold I guess. I am not sure if I will be able to do that but atleast PPSSPP can do it so maybe I can too, let’s see.
Here are some apps that I need like right now:
Full Screen Clock with speaking every hour or set intervals so that I can use an old phone just for it and nothing else.
Pranayam Yoga application → That is one of the first applications I made as a kid and it worked so I could do my pranayamas as I wished to without having to set stopwatch again and again.
Five minutes beeper application → For ADHD.
I do want to have proper income from Android Applications I published on the playstore
Yup, that is one of my goal. Getting a good job in a decent company is no longer my goal. Actually that’s something I have totally hated if I am being honest. I want to be the driver of my own life and shape my destiny as I want, even if it means it’s going to be so much more tough than working for another person, I am still going to do it.
Also, I can’t seem to get along with other people. Everyone loves having me around but I don’t like anyone else’s company when I am creating something. It is a personal thing. The best works and achievements I have done in my life to this day has been alone.
Some people are really excellent at their craft and some people are great teachers. I don’t consider myself a great teacher however I have been called a coach multiple times during multiplayer gaming, real life outdoor gaming and even in stuff where other people have been better than me. So I do know that I can be a good tutor or coach BUT I want to be that after I have been successful in a field. I think it’s stupid to teach something that you aren’t an expert it.
Notes:
Android Basics with Compose
Unit 1: Your first Android App
Introduction to Kotlin
Kotlin has to have a main function.
new function is defined with fun in Kotlin(WTF).
Function names start with lower camel case
print function doesn’t append a new line. println does.
Four spaces instead of tabs(WTF).
No semicolon at end statement of this language so use one line for one action
variable declaration in Kotlin: val name: data type = initial value
val count: Int = 2
Also without specifying data type:
val name = initial value
Data types: String, Int, Double, Float & Boolean. (Why the fuck is Integer Int? but function fun and variable val and not even var?)
Literals: Fixed or constant values
Use $variableName to I think to evaluate the expression and then convert to string. It’s called string template.
Also for expressions use curly braces NOT NORMAL BRACES. ${a+b}
val vs var:
val when variable will not change so variable literal
var when variable will be reassigned.
In kotlin, use val over var if possible so if the value of the declared variable will not cha– WTF that’s a constant.
// Comment
/* * Also,
* a long comment
*/
fun name(parameters): returnType{}
Unit return is the default return in Kotlin similar to Void in other languages.
Named arguments can be reordered in function calls.
Float is less precise than double.
--------Abandoned because it was too dull and boring--------
General
Android XML is no longer the preferred approach to how user interfaces are built in android, it’s been replaced with Jetpack compose just like Kotlin and Java.
Kotlin 2.0 was released in 2024.
Using proper Kotlin and Android Studio is crucial.
My default new applications are Android 7(API 24)+ as of 2024.
Gradle: A list of things required to build the application that also tests if it’s ready to build.
PIN: The default latest Android Studio forced me to use API Level 35. It’s alright to go back to use an older version of Android Studio, preferably on what the application was made on as an example.
class MainActivity : ComponentActivity() basically is MainActivity extends ComponentActivity()
Composable: Element that you can see on the screen.
val is basically constant/immuatble. var is variable/mutable.
Kotlin
No need to define the exact data types in Kotlin.
Here's how you do define it: val oneByte: Byte = 1
Adding f after the number will make the number a float.
float 32, double 64
Unsigned integer types: Remove every negative value so it goes from -128→127 to 0→255
UByte, UShort, UInt...
you need to append u to the end of the value
Logic Operation in Boolean:
|| disjunction (logical OR)
&& conjunction (logical AND)
! negation (logical NOT)
Character is just one letter. They are used with single quotes '1' instead of double quotes
Range check: age in 18 .. 39
.rangeTo() function is a closed-ended range.
C# uses UpperCamelCase for functions whereas Kotlin uses lowerCamelCase.
Class names are singular.
Initialisers is executed whenever the class is created.
Use class Dog(val name: String) instead of class Dog(name: String) if you want to make sure that name is part of the Dog Class. Otherwise it won't be able to access these properties from other class.
Data classes are there just to hold data.
Use chatGPT to clear confusions.
You can pass objects as parameters.
// Immutable list
val shoppingList = listOf("Processor", "RAM", "Graphics Card", "SSD")
// Mutable List
val shoppingList2 = mutableListOf("Processor", "RAM", "Graphics Card", "SSD")
Ranges:
0 until shoppingList.size
i in 0 ..shoppingList.size
floating point numbers aren't as accurate.
?: is elvis operator. Basically a shortened if statement.
Jetpack Compose
Google decided to go with Jetpack Compose since according to them they needed to constantly add code to handle XML and they think it's outdated.
XML is a structural language.
You can write functions inside functions, WTF!
Android Studio
@Composable is nothing but a special function.
Context→ In which area of the function should something happen.
A box is a layout element. It's parent is a drop-down.
contentDescription for icons→ Accessibility function.
Arrangement vs. Alignment ?
Space between elements:
Spacer: Reusability. Slightly complex code.
Padding: Simplicity. It's just added around the element for the composable.
Prefer density pixels(dp) instead of pixels.
16dp is default spacer value or 8dp.
If you want to keep state:
val treasuresFound = remember { mutableStateOf(0)}
--------Abandoned because it was too dull and boring--------
If I ever do such tutorials:
I will start with debugging at the very beginning. Might show the printline statement once but will never actually use it. Also I won't spell everything out. I will let them figure it out themselves.
Working for a few startups I have seen these little kids missing this crucial skills.
I won't. I find these too boring.
My feeling:
The more I do this course the more I realize it's not for me. I love gaming too much I guess. While doing various game developer courses, I was never bored but with this, I am.
I guess all I wanted to do was make some basic apps for my own usage which now I think isn't worth wasting my time over.
But however, I do have a habit of ditching courses as soon as I feel bored with them so for the sake of completion, I will at least make the apps in this course and will publish them to the Android Store and then will go back to video game development once and for all. I should also change that on my LinkedIn profile now.
I can do programming but I like it much more if that is a part of a game. The simple fact that I have completed other game developer courses completely but not these programming courses is a testament to that fact.