Skip to main content

2 posts tagged with "droidconke2023"

View All Tags

· 6 min read
MamboBryan
SheeWrites
Emmanuel Muturiaâ„¢

Hey there Droids and Droidettes! How are you? Hopefully you are able to read this newsletter as we hear some of our brothers and sisters are suffering Web Dev, sorry DDoS issues. Nevertheless, Episode 12 is finally here and we cannot wait to share with you the highlights of July as recorded:

July Meetup​

Android254, in liaison with Kotlin Kenya, organised the July Meetup which hosted the three legends namely: Somet Kipchilat, Peter Chege, and our esteemed Droidette Michelle Wainaina. They each gave quite the talks that covered the latest hacks (pun intended, iykyk) in developing for a modern era. Here is a rundown of their talks in order of appearance:

Building for The Next Billion Users​

Somet, Africa's Okayest Developer, kicked off the meetup by introducing the audience to the concept of building products for the next billion users. He provided the case study of Native Languages as an example of factors that largely contribute to the success of a product (app) in a large sacle market. Somet supported his point by mentioning Android 13 Go as a product that prioritizes users with less capable devices with respect to system resources and specs. He summarised his session by reminding the audience that their products should prioritize:

  • Accessibility and Localization
  • Affordability and Usability
  • Resilience and Low Bandwidth Connections
  • Multilingual Support

Somet concluded by asking the audience to think about 'Glocalization', a term denoting the merging of Global and Local markets for your products, MPESA being an example...

SealedX​

The next talk was given by the man himself (Peter Chege) and was about the SealedX library in Kotlin. He introduced it by mentioning the agony that comes with repeatedly writing Sealed Interfaces in your Compose project such as those used to define UI States. Peter highlighted that besides using the Kotlin Symbol Processor (KSP), the SealedX library also used two annotations to automatically generate Sealed Classes/Interfaces: @ExtensiveSealed (For code that is meant to be generated multiple times) and @ExtensiveModel (To wrap around your Data Classes). His last activity (puns for days) was showcasing a demo on the same using a custom project that consumed REST APIs...

Firebase Firestore: A Coroutines Story​

The July Meetup speaker session was remarkably concluded by the legendary Droidette (Michelle Wainaina) who talked about the introduction of Coroutines in Cloud Firestore. She kicked off by recapping Coroutines and how they affect app performance in Android (Kotlin obviously, J*va people please click off) before announcing their introduction in Firebase's Cloud Firestore. She also used a demo project to not only present the use of Coroutines in Cloud Firestore but to also teach the audience why it was important to first include a Coroutine Scope before anything else. As a bonus, Michelle used a Chat App use case to demonstrate how the choice between Cloud Firestore and Realtime DB in Firebase among other products was just a matter of tradeoffs...

Google I/O Extended (Pwani Edition -> Android)​

Hayawi hayawi huwa! This segment takes us all the way to the Coast where the Google I/O Extended: Pwani Edition event was held at the Aga Khan Academy. The Android community was well represented as it starred a hot line of speakers:

Android Keynote​

The Android Keynote was given by Annunziata Kinya, who eloquently went through the latest features and developments in Android, the most exciting one being the stable release of Android Studio: Giraffe. Annunziata also detailed the release of various Jetpack Compose libraries and features such as Compose for TV (Now in Alpha), Support for Compose by other libraries such as Glide and the Jetpack Glance library which allows you to develop highly customizable yet elegant widgets optimized for Android phones, tablets and foladable homescreens using Jetpack Compose...

Building A Data Layer That Fits Your Overall App Architecture​

The first Android session was spearheaded by our dear Droidette Co-Captain and WTM Ambassador, Jacquiline Gitau. She took the audience through the steps and factors to consider when building a data layer that was congruent with the best practices of Clean Architecture. Her recommendations included both a Local and Network Data Source that were synched to allow for a single source of truth, mapping Internal Models to External Models, and the use of Mutex which as she explained was a Kotlin-first approach to allow for synchronized sharing of resources within your application...

What's New in Kotlin for Android​

The final talk in the Android segment was given by none other than the Chief Dish Washer, Mambo Bryan. He gave a session that introduced the latest exciting features and developments in Kotlin, starting with the Kotlin 2.0 compiler which was said to reduce build time by half! He also mentioned the Kotlin DSL for Gradle which oversaw the introduction of Kotlin as the default language for Gradle in new projects leading to precise code hinting, realtime syntax errors and which has a rich and available documentation for reference...

DroidCon Kenya 2023​

Alright, if you have not yet signed up for DroidCon Kenya 2023 then what are you doing? Don't you want to be part of something that catapaults your understanding of Android? Aren't you afraid that if you wait too long then the Early Bird Tickets will be gone and you will not have caught the worm? Don't worry, just Click Me and this can be our little secret...

Call For Speakers (Monthly Meetup)​

Interested in becoming a speaker for the upcoming monthly meetups? For real for real? Then stop what you are doing and head over here to make your aspiration a reality!

ARTICLES
Getting more concise with Kotlin Generics
Experiment #1 (Genesis)
Experiment #2 (Fire Away)
Experiment #3 (Service Denied)
VIDEOS
Pinterest UI
Advanced Kotlin: Advanced Functions
APPS
Ewave
REPOSITORIES
SafePass
KomposeCountryCodePicker
BeeTablesCompose
COURSES
Mastering MVVM Architecture in Android Development using Kotlin

Got any other resources that you want to have featured? That's alright, cause all you have to do is click me. That's it. Congratulate yourself for being a winner!

You can also suggest any article, library, video or podcast for upcoming newsletters. Click here to submit!

Enjoyed reading this episode of our Kotlin Newsletter? Worry not, for we will be back soon with another one so stick around, will ya? Until next time, happy coding & HAVE A NICE KOTLIN!


· 4 min read
Emmanuel Muturiaâ„¢
SheeWrites

Hey there Droids and Droidettes! I don't know about you but I could sure use a hot cup of coffee cause this weather...Anyway, whether you're reading this from Amsterdam or not, Newsletter 11 is already here!!!

June Meetup​

Android254 & Kotlin Kenya hosted the monthly Meetup (June Edition) which was spearheaded by three speakers: Kenn Jr, Dennis Githuku and Kenneth Mathari. They each gave amazing talks on three insightful concepts in modern Android Development:

Notifications​

Kenn Jr kicked off by introducing the audience to Notifications in Android. He differentiated Push and Local Notifications and engaged the audience by asking them to give examples of modern Android applications that use Notifications and how it impacts their users. Kenn emphasized the need for Android Developers to implement Notifications to result in the following:

  • Re-Engage their users.
  • Have higher retention rates...
  • Facilitate direct marketing to their users...
  • Understand their users' behaviours...
  • Branding and Visibility...

Kenn concluded by demonstrating the impact of Notifications through a case study on Duolingo based on his personal use of the app.

GraphQL​

The Sherehe (Party) Master followed by orienting the audience to GraphQL, the alleged replacement for REST APIs. Kenneth's presentation largely involved a demo on how to implement GraphQL in an Android project. He also supported his demo by advising the audience to check out GraphQL's official documentation and the Apollo Developer Hub to learn more about GraphQL. Kenneth concluded by outlining the main benefit of GraphQL i.e The ability to only get the resources you want.

Side Effects​

Composers were in for a treat as the last session had Dennis Githuku talk about Side Effects in Jetpack Compose. He started off by debunking the myth that portrays Side Effects as the toughest concept to grasp in Jetpack Compose and how most Android Devs are using them without even knowing! He went on to give a Description-Demo sort of presentation on the following Side Effects:

  • LaunchedEffect
  • rememberCoroutineScope
  • rememberUpdatedState
  • DisposableEffect
  • derivedStateOf
  • SideEffect (Composable)
  • produceState
  • snapshotFlow

Dennis wrapped up his session by assuring the audience that contrary to how intimidating Side Effects appear, they really depend on an individual developer's use case and more often than not, using Side Effects in Jetpack Compose is unnecessary.

Kotlin Challenge​

As per the usual we have this month's challenge for those who'd like to test their mettle in the Kotlin language.

info

This month we're giving away two Jetbrains licenses for the first two people to solve this month's challenge

import junit.framework.TestCase.assertEquals
import junit.framework.TestCase.assertTrue

fun main() {
val attendee = Attendee(sessions = listOf("Android","Kotlin"))

assertEquals(
true, // expected
attendee is Collection<String> // actual
)

assertEquals(
true, // expected
attendee.contains("Android") // actual
)

println("Everything Passed!!!")
}

/**
* Without changing anything above
* Make the two test cases pass.
* - you should only use class delegations
* - you should NOT create any function inside the Attendee class
*/

data class Attendee(val name: String = "a", val sessions: List<String>)

tip

You can start by making sure the Attendee class extends the Collection interface 😉 😉

DroidCon Kenya 2023​

We were also reminded the meetup's attendees to RSVP for the DroidCon Kenya event that is set to run from 8th November to 10th November. We were urged not to delay as the Early Bird tickets are limited, after which any interested attendees may probably need to find a sponsor to finance their tickets. Have you RSVPd for the event? No? Are you even serious? Anyway, get your Early Bird tickets here and share with your friends cause this year we be happening: Click Me

Call For Speakers (Monthly Meetup)​

Interested in becoming a speaker for the upcoming monthly meetups? For real for real? Then stop what you are doing and head over here to make your aspiration a reality!

ARTICLES
Reactive Programming with Kotlin
Accessibility in Android (Jetpack Compose)
Let's Create A Notification Reminder App in Jetpack Compose)
VIDEOS
Harun Wangereka (Android Developers Feature)
Full Guide to ViewPager in Jetpack Compose: Android Studio, Kotlin
REPOSITORIES
Project Tracking

Got any other resources that you want to have featured? That's alright, cause all you have to do is click me. That's it. Congratulate yourself for being a winner!

Enjoyed reading this episode of our Kotlin Newsletter? Worry not, for we will be back soon with another one so stick around, will ya? Until next time, happy coding & HAVE A NICE KOTLIN!