Categories
Capstone Project

BlogPost( num=2, content=great )

@Composable

fun BlogPost( num: Int, content: String) {

Text(text=content)

}

val great: String = “

I have a love-hate relationship with Android Development using Android Studio + Kotlin + Jetpack Compose.

Yeah, Kotlin syntax looks a lot like Java or C#, so it’s pretty easy to pick it up if you’ve done any OOP with advanced topics like delegates, generics, interfaces, etc. Jetpack Compose is a declarative UI framework similar enough to any other. Android Studio is another great JetBrains IDE. So what’s to hate? Why not just love?

developer.android.com and see for yourself.

I’ll get back to that.

First, let me say that Jetpack Compose is my favorite UI development kit so far. Granted, at the stage in my career, I don’t have experience with many… but they do include things like TKinter, PyQt, the typical web HTML+CSS, and React. Jetpack Compose has every one of those beat for theming/styling. Styling in Tkinter can be easily redundant and lead to excessive lines of code. The typical CSS style model seems like it was an afterthought. But, I guess it was. React didn’t do anything that I’m aware of to fix that. Jetpack Compose allows for easy style declarations that are well organized and then easily integrated into as many UI components, “composables” as you want.

Kotlin strikes me as a worthy successor to Java. It compiles down to Java. It seems to have drawn heavy inspiration from C# among other languages (though I can’t speak to that). And it can be much more concise than C# or Java. I don’t have a love-hate relationship with Kotlin. Just love. Cheers to JetBrains for developing this one.

Which brings me to Android Studio. Lots of great tools. Great type hinting assisting. Amazing automated imports. Did I say lots of tools? More than I know what to do with. Steep learning curve to really command all of it, but there is definitely more there than you need or probably even want. The downside is the emulator. It’s a fickle beast. My best advice is, if you are confident in your code but for some reason the thing just won’t run on the emulator, then see IT Help Desk Level 1: Did you try restarting it? How about a clean installation? Oh, it works for you now? That’s great!

And now we can come back to the real reason for the love-hate: developer.android.com.

This website is a mess and that’s an understatement. It has clearly focused on trying desperately to sell itself and show you how fully built-out it is.

But I’m a developer. I need to be able to see the documentation! I know I’ll need documentation for Androidx APIs, Compose APIs, Jetpack (so it leads you to think) APIs, and Kotlin APIs.

Ok, so I’ll start at developer.android.com and try to find the documentation home.

Where’s the link? There’s no easy “Docs” link on the top bar. Not under “Essentials.” Ok, under “Design & Plan” I see it has “Libraries” under “Architecture”… aaaand… this is a guide about “view binding”, not even a library.

Check out this weird loop. Go to “Essentials,” and in the drop-down, on the left, select “Explore Modern Android.” You should see this:

Hey! This is everything I need! Ok, Let me open up “Compose” (1) and “Jetpack” (2) I need both.

They return these destinations respectively:

(1) https://developer.android.com/jetpack/compose

(2) https://developer.android.com/jetpack

The Compose link (1) has a “View Docs” button. Finally! *click*

(1) https://developer.android.com/jetpack/compose/documentation

It’s not a library, but it is guides, so this seems like a good starting point.

The “Jetpack” link up top doesn’t have a “View Docs” button… but it does have a “Get started” button. Ok, let’s try that.

(2) https://developer.android.com/jetpack/compose

Wait a minute… this looks like… we’ve been here before. This is what happened when I clicked on “Compose” at the very beginning. What was the point of the “Jetpack: Libraries for app development” component???

I guess Android development is evolving fast. Makes sense. It’s a burgeoning technology. Maybe I just don’t understand the relationship between Android, Jetpack, and Compose. Or, maybe it’s these relationships themselves for why this website is so hard to navigate. Go back to the top bar on the home page. Select “Develop,” and on the far right under “Libraries” you can see a links to: “Android platform,” (1) “Jetpack libraries,” (2) and “Compose libraries” (3).

The result from “Android Platform” (1) is definitely its own API reference. Most everything here in the Android namespace. Makes perfect sense. The “Jetpack libraries” (2) takes you to https://developer.android.com/jetpack/androidx/explorer. And “Compose libraries” (3)?” Takes you to https://developer.android.com/jetpack/androidx/releases/compose. Which a specific release with in the “Jetpack libraries” (2).

I’m confused. There’s definitely some redundancy here, making this website way more difficult to navigate than it needs to be. I’m out of time, but spend enough time in the libraries or guides, and you’ll see that a lot of the links lead to deprecated objects. My guess is due to extremely rapid development. So developer.android.com is all f@%*#d. Ok, back to Stack Overflow.

Categories
Meta

Study Spirals: intro

Hi.

This is a blog for my CS capstone.

I’ll keep this short. The above image represents from start to end my 1.5 year experience as a post-baccalaureate student in OSU’s Computer Science program. Each word or phrase, a studied subject. Each class delimited by a full stop. But wait… An experience is something personally felt. And if you read through the spiraled string, you won’t find a single emotion or feeling.

Look again. How do you feel?

Yeah, it’s a wash of words. Each word, a metonymy, a capsule of meaning with the details left out. Can you recreate detail for each one? Difficult to do. My eye latches on to some more than others. The breadth of subject is large and evolves quickly to the next. And I feel that 1.5 years was at once not fast enough and entirely too fast. My study must have only begun, and I hope it will continue.

Joshua Sears – 2023/10/02