Skip to main content

ยท 7 min read
Emmanuel Muturiaโ„ข

Know Your Meme ๐Ÿคฃโ€‹

Alt text

Welcomes & Hellos! ๐Ÿซ‚โ€‹

Hello and hello again, everyone ๐Ÿ‘‹! How are you all? We hope that you are safe and sound despite the reenactment of The Noah Floods ๐ŸŒŠ. We are not referring to this Noah but you get the idea ๐Ÿคทโ€โ™‚๏ธ. Without wasting any time, here is a recap of what happened this month within the Android254 and Kotlin Kenya communities. This is Episode #18 of The Kotlin Kenya Newsletter:

Alt text

The April Challengeโ€‹

Alt text

Do you love a good Linked List Manipulation Session? Are you a DSA guru who drools over reversing, recursing, and linking Linked Lists? ๐Ÿฅต Whether you are or not, The Chief Senior Dishwasher unveiled The April Challenge. It featured Recursion ๐ŸŒ€ as the concept of choice to make the Test Cases pass. Let us do this one more time: Would you like to win some merch by JetBrains? If so, then be ready to fire up The Kotlin Playground and solve The April Challenge when it drops at KotlinBits.

Exploring Canvas in Jetpack Compose for Better UI Experiences ๐ŸŽจโ€‹

Alt text

The Hutsy Developer made good use of an ice breaker (if you know you know) โ›๏ธ to introduce his session on working with Canvas in Jetpack Compose. Like the Tech Bro that he is, Josphat Mwania used the Audi logo to demonstrate how to work with Canvas in Jetpack Compose using the Canvas API. Josphat concluded his session by challenging the audience to apply what they learnt to draw either the Instagram logo or the Facebook logo. The Senior Teaman took up the challenge and submitted this solution.

Exploring Mobile Release Management: Strategies & Best Practices ๐Ÿ“Šโ€‹

Alt text

If you hate complex release processes when it comes to Mobile Releases, then you no doubt need to check out The State Machinist's presentation on the different strategies and best practices of Mobile Release Management. He extensively talked about Release Management, The Challenges of Mobile Release Management, and The Solutions too. To learn more, check out his presentation. ๐Ÿ“ˆ

Configuring WorkManager: Running Tasks in The Background ๐Ÿ”งโ€‹

Alt text

Finally, we were served (pun intended but keep reading even if you do not understand) with a taste of Background Process Scheduling using WorkManager by Joel Muraguri. He used a simple Reminder app to demonstrate the steps needed to implement WorkManager in Android to schedule ๐Ÿ—“๏ธ background tasks.

Food for Thought ๐Ÿ’กโ€‹

Alt text

  • Do you think WorkManager will work when a user toggles "Background Processes" off on his/her app settings? โš™๏ธ Why?

  • If you schedule a task, say 10 minutes โฒ๏ธ from now, do you think it will be executed if the app is not in the foreground when the time comes for the task to be executed? Why?

  • Why do you think WorkManager and AlarmManager are different in The Android SDK? ๐Ÿงฐ

DroidCon Kenya 2024 ๐ŸŽซโ€‹

Alt text Alt text

You are going to have to grab some powder as these announcements deserve an applaud ๐Ÿ‘ from you. Without wasting any time, here is a rundown of everything you need to know about DroidCon Kenya 2024:

  • DroidCon Kenya 2024 will be happening from the 6th to the 8th of NOvember 2024...
  • FlutterCon Kenya 2024 will be hosted alongside DroidCon Kenya 2024 as we believe in equality across Mobile frameworks (except Javascript frameworks)...
  • The DroidCon Kenya Android App is open for contribution so if you want to be featured in The Contribution Hall of Fame then better get your hands dirty and contribute!

Hello From Congo ๐Ÿ‡จ๐Ÿ‡ฌโ€‹

Alt text

The April Meetup did not just host The State Machinist as the only guest. All the way from Congo, we had Yves Kalume, GDE come say hello and tour this lovely region of ours. The duo ๐Ÿ‘ฅ appreciated the level of engagement witnessed to the audience and commended them for their passion and contributions to the community.

The Community Showcase ๐Ÿ’ชโ€‹

1. Chronosโ€‹

Alt text

Thanks to Felix Biego, you can now keep your smartwatch synced and never miss a notification ๐Ÿ›Ž๏ธ on your wrist. Discover the fascinating development journey behind Chronos, the revolutionary smartwatch companion app that redefines your health and fitness experience.

2. Sokaโ€‹

Alt text Alt text Alt text Alt text

Football โšฝ fans have not been left behind as we are proud to feature Soka, an Android app that works out your game predictions coupled with the following features:

  • Live Scores
  • Match Details
  • Videos & Highlights
  • Match Stats

The app is built by The Choxx so please thank him whether your predicitions go through or not.

3. Measure Code Execution Time in Kotlinโ€‹

Alt text

Have you always wondered what Android Interviews look like? If you thought that this is another iteration of DSA then brace yourself. Why? Valentine Rutto recalled an Android Interview where she was tasked with writing a function that predicts flooding given amount of rain and area in square meters and finally measure its code execution time. โฑ๏ธ Check out her Medium article to learn how you could approach such a use case instead of fumbling and collapsing during the interview.

4. Mastering Kotlin for Android 14: Build powerful Android apps from scratch using Jetpack libraries and Jetpack Composeโ€‹

Alt text

Do you remember when we asked you to pre-order His Expertness's book in preparation for your mastery in Android Development, the Jetpack Compose way? Get your credit/debit card ready as the book is finally out! Yes, Mastering Kotlin for Android 14: Build powerful Android apps from scratch using Jetpack libraries and Jetpack Compose is finally out and we urge you to make the purchase as soon as you read this. Seriously though, what better way is there for learning and mastering Android other than from a Googe Developer Expert (GDE)? Hurry up, then! Order the book ๐Ÿ›’, master your skills ๐Ÿง , apply them in finding and solving problems ๐Ÿงฉ, get paid ๐Ÿ’ฐ, and purchase your German Machine ๐ŸŽ๏ธ sooner than later.

Until May ๐Ÿซ‚โ€‹

It is at this point that we acknowledge our new beginnings and pledge to have a transformative 2024. We have journeyed, will still journey with you and gears are about to be shifted (tech bros please calm down) in your favour. If you would like to level up your career in Android, then attending our Monthly Meetups, building cool stuff in public, and interacting with our members should be a part of your routine. We cannot wait to hear and share your stories. See you in May! ๐Ÿ‘‹

Alt text

Credits ๐ŸŽฌโ€‹

1. Newsletter Writing, Editing, and Publishingโ€‹

2. Speakersโ€‹

3. The April Challengeโ€‹

4. DroidCon Kenya 2024 (Announcements)โ€‹

6. Meetup Hostsโ€‹

7. Newsletter Sponsorsโ€‹


ยท 8 min read
Emmanuel Muturiaโ„ข

Welcomes & Hellos!โ€‹

Alt text

If laughter is the best medicine then we are no doubt the best doctors ๐Ÿ’‰ in Kenya for our attendees had quite some laughs during The March Meetup courtesy of our lively speakers. Even if you did not get the chance to attend The March Meetup, worry not for this release will simulate them as we believe in leaving no man (or woman) behind. This is Newsletter #17:

Keeping Your Software Fresh: How Renovate Simplifies Dependency Updatesโ€‹

Have you ever struggled to keep your dependencies up to date in this dynamic field of Android? Or even worse, have you ever had to deal with Ancient Dependencies? You would be forgiven after thinking that Dependabots were the only solution to this unfortunate circumstance. What if we told you that there was another way? ๐Ÿ˜ฎ What if we told you that it prioritises Automation? Yes, people of DevOps. This new option targets you too. Without wasting any time, Brandy Odhiambo introduced Renovate as an automated solution that seeks to ease the process of Dependency Management. In fact, we dare to say that Renovate might be better for you compared to Dependabots thanks to:

  • The Dependency Dashboard that provides all of the information you need regarding your dependencies...
  • The ability to upgrade common monorepo packages...
  • The Multi-Platform support...
  • The ability to show log changes...
  • The ability to run as often as it is allowed to run...

Alt text

Say goodbye to Ancient Code (Interns and Juniors we are watching you) and say hello to Automation...

State Management in Jetpack Composeโ€‹

Speaking of Ancient Code, are you still stuck writing your UI in XML and would like to migrate to Jetpack Compose? Would you like to take a step further and learn about State Management in Jetpack Compose? We had The Beerman take us through State Management where he implemented The Beer App ๐Ÿบ to demonstrate the same.

Alt text

Here are a few pointers that were discussed during this session:

  • State and State Management...
  • State Hoisting...
  • Definition of State in Kotlin (Jetpack Compose)...

Stay tuned for a potential Part 2 of this elaborate session ๐Ÿ˜‰...

Get Started with Gemini on Androidโ€‹

From ChatGPT to Dall-E and now Devin, AI seems to be moving faster than most of us thought. Whether that is a good or bad thing, we cannot deny that AI is here to stay and we are all better off understanding it even at a basic level.

Alt text

Given that we do not want our developers to be rendered obsolete, we invited The Droidette to conduct a workshop on Getting Started with Gemini on Android. She made use of Chat Buddy to demonstrate the power of Machine Learning through Artificial Intelligence using The Gemini API in Android. The audience was in awe for this marked a revolution of sorts in the potential of AI in building attractive โ‡๏ธ, user-friendly ๐Ÿค—, robust ๐Ÿฆพ, and testable ๐Ÿงช Android apps...

The March Challengeโ€‹

Are you a lover of Data Structures and Algorithms? Do you not just love a good LeetCode session where Performance ๐Ÿ“ˆ is your love language? Worry no more for whether you like it or not, we decided to feature Linked Lists in The March Challenge anyway ๐Ÿคทโ€โ™‚๏ธ:

Alt text

Oh no. We did not just stop there. Android254 and Kotlin Kenya firmly believes in Test Driven Development (TDD). "Yes that is great and all, but how does that relate with the March Challenge?" That is the best question you could have asked for all you need to do is click me and test your Testing skills. See what we did there? ๐Ÿ˜

DroidCon Kenya 2024โ€‹

The early bird ๐Ÿฆ catches the worm ๐Ÿชฑ. While we will not be catching worms any time soon, we are proud to announce that DroidCon Kenya 2024 will be happening from the 6th to the 8th of November this year.

Alt text

The Teaman made this announcement and gave the following pointers that we would like you to have:

  • Contributions to The Droidcon Kenya Android App on GitHub are still open and if you would like to spice up your resume ๐Ÿ“„, get access to a simulated work environment ๐Ÿ–ฅ๏ธ, or even gain bragging rights in matters Open-Source ๐Ÿ‘ฅ, then please check out The Issues listed and get to work!
  • Did we mention that the event will be happening from the 6th to the 8th of November? ๐Ÿค”
  • DroidCon Kenya will be turning 5๏ธโƒฃ so the event will be a rather special one to commemorate half a decade of fun and learning...

1. Mastering Kotlin for Android 14: Build powerful Android apps from scratch using Jetpack libraries and Jetpack Composeโ€‹

Alt text

His Expertness will be launching his book: Mastering Kotlin for Android 14: Build powerful Android apps from scratch using jetpack libraries and Jetpack Compose on the 5th of April. Do you want to finally master Android(Kotlin), get that 6-figure job, and finally buy that German Machine? ๐Ÿš— Well, then what are you waiting for? Pre-order the book here and get to work!

2. Asking Efficientlyโ€‹

Alt text

Juniors, this one is for you ๐Ÿฅบ. Have you ever been stuck on a coding problem and did not know who or how to ask for help? Do you ever feel like you are a bother to those you ask questions? Would you like to ask better questions using better methods (pun unintended)? If that is the case, look no further than this article which will guide you on how to ask efficient questions as written by a Senior...

3. Sain (ใ‚ตใ‚คใƒณ)โ€‹

Alt text

Would you care to try out a tool that would allow your users to write signatures in your app? Drum rolls ๐Ÿฅ please for we are excited to unveil Sain (ใ‚ตใ‚คใƒณ) to you! Sain (ใ‚ตใ‚คใƒณ) is a Compose Multiplatform library built by Joel Kanyi for capturing and exporting signatures as ImageBitmap with customizable options. Perfect for electronic signature, legal documents and more...

4. Palette Lab - Color Pickerโ€‹

Alt text

If you genuinely thought that we forgot about UI/UX Design then your delusions are easily comparable to those of J*va programmers ๐Ÿคก. Palette Lab - Color Picker is primarily built for developers, designers, and anybody with an interest in aesthetic - related activities like fashion or photography. It helps you explore color as well as see what color combinations best suit whatever your interest is, allowing you to keep a rich collection of colors and palettes. Thank Augustine Ndung'u for this empathetic design product...

5. NRBSTEPPERโ€‹

Alt text

Are you interested in fashion and expanding your wardrobe beyond Tech swags? Would you like to purchase your next outfit based on a product built by one of our community members? Check out NRBSTEPPER as built by Alloys Amasakha and let the dripping begin! ๐Ÿ•ถ๏ธ

6. Jammo Sportsโ€‹

Alt text

Football โšฝ fans are allowed to cheer further for we are proud to introduce Jammo Sports. As its creator put it, "It is a platform to display all the sporting events majorly those happening in the African continent. It's a football platform meant for live match events converage, giving info about teams, competitions, upcoming fixtures and game results...

7. Navigating The Obstacles of Navigation Composeโ€‹

Alt text

Do you want to prevent your Android app from crashing using one โ˜๏ธ simple trick in Compose Navigation? Check out this article that describes the pitfalls of using explicit navigation destinations and a simple solution to curb the same. The article was written by Peter Chege...

Until Aprilโ€‹

It is at this point that we acknowledge our new beginnings and pledge to have a transformative 2024. We have journeyed, will still journey with you and gears are about to be shifted (tech bros please calm down) in your favour. If you would like to level up your career in Android, then attending our Monthly Meetups, building cool stuff in public, and interacting with our members should be a part of your routine. We cannot wait to hear and share your stories. See you in April ๐Ÿ‘‹...

Alt text

Creditsโ€‹

1. Newsletter Writing, Editing, and Publishingโ€‹

2. Speakersโ€‹

3. The Kotlin Challengeโ€‹

4. DroidCon Kenya 2024 (Announcements)โ€‹

6. Meetup Hostsโ€‹

7. Newsletter Sponsorsโ€‹


ยท 3 min read
Emmanuel Muturiaโ„ข

Welcome!โ€‹

Alt text Hi, Droids and Droidettes! Welcome back to yet another issue of The Kotlin Kenya Newsletter ๐Ÿ“ƒ. How have you all been? We hope that you had an awesome February and that you experienced the love that you deserved this month ๐Ÿ˜. Whether you did or not, let us demonstrate our love for you by releasing this month's issue of our Newsletter. This is Newsletter #16:

The Kotlin Monthly Challengeโ€‹

Alt text During this month's meetup, our audience got to stretch their thinking by participating in The Challenge #2 as well as flexing their Kotlin and DSA prowess. This epsisode focused on both Kotlin-specific and Algortithmic approaches to solving The Challenge and by attempting it yourself, you could see how well your code would have performed at the time. Share with us your solutions as what better way to market your skills than through flexing them at any given point in time? ๐Ÿคทโ€โ™‚๏ธ

The Code Reviewโ€‹

Alt text Do you still feel like you could write better code? Does your GitHub repository still look like that of a Bedroom Developer? Worry not for we have permanently adopted The Code Review as part of our Monthly Meetup Curriculum. For the second time, we were joined by The Teaman who went over the following pointers (pun intended if you know C++) based on this GitHub repository:

1. Commenting vs Documentationโ€‹

Senior Chepsi mentioned that while opinions may differ regarding its implementation and execution, documentation is important in a team-centered codebase. He stressed that documentation allows for readability of the codebase regardless of the seniority of the reader.

2. Write Out Why You Chose Itโ€‹

In addtion, he emphasised that another feature of a well-documented codebase or GitHub repository was the inclusion of the "why", that is, documenting why you chose a certain library for example. The attendees were made to understand that why they chose their tools mattered more than what tools they actually used.

3. Network Callsโ€‹

Through a lengthy but fruitful discussion, Chepsi engaged the crowd by asking them which technologies they used for making network calls in their projects. The most outstanding takeaway was that majority of the community members preferred Ktor as it supported their mission of adopting a Kotlin-first approach to building their projects.

The session and meetup in general was concluded by the attendees being asked to try and play around with their technologies and even try and build their own. A custom network-calling tool, perhaps? Food for thought.

The Call For Speakers (Monthly Meetup)โ€‹

Hey, pssst! Are you interested in becoming a speaker for the upcoming monthly meetups? For real for real? Then stop what you are doing and click me to make your aspiration a reality!

Alt text

GitHub Repository of The Month
Carizma

Until Marchโ€‹

It is at this point that we acknowledge our new beginnings and pledge to have a transformative 2024. We have journeyed, will still journey with you and gears are about to be shifted (tech bros please calm down) in your favour. If you would like to level up your career in Android, then attending our Monthly Meetups, building in public, and interacting with our members should be part of your routine. We cannot wait to hear and share your stories. See you on March ๐Ÿ‘‹...

Alt text


ยท 4 min read
Emmanuel Muturiaโ„ข

Hi (The Reunion)โ€‹

Alt text Hi Droids and Droidettes and a Happy New Year to you ๐Ÿคฏ. How have you all been? Now that you are back so are we! Without wasting any time, here is what's been happening in Android254 and Kotlin Kenya. This is Newsletter #15:

The Kotlin Challengeโ€‹

Alt text Hey psst! Are you a Kotlin junkie who would like to flex their Kotlin muscles? You are? In that case, please thank your colleagues led by The Chief Senior Dishwasher who brought back The Kotlin Challenge. The Kotlin Challenge is an opportunity for you to not only showcase your Kotlin prowess, but also claim your very own Jetbrains Lincense. What else, apart from a German Machine could be more rewarding for your skills? ๐Ÿ˜

The Expectations, Feedback, and Topicsโ€‹

Alt text With a new year comes a new way of doing things. As we are a community and not a regime, we always seek to involve our community members in our development plans (pun intended ๐Ÿคก). During the January Meetup, we had a lengthy yet engaging discussion based on the following pillars:

1. Expectationsโ€‹

With the steady incorporation of new members, Android254 and Kotlin Kenya received the latter's expectations for their experience in the community. They were as interesting as the proposition to include pizza snacks ๐Ÿ• and as resourceful as including more hands-on workshops. Tell a friend to bring a friend in order to find out more, will ya?

2. Feedbackโ€‹

We also gathered valuable feedback from our community members and do you guys have quite the ideas! In case you participated in our survey, then please be assured that we have already assimilated your feedback into our plans for the year. The question is: Are you ready for what's coming? ๐Ÿ‘€

3. Topicsโ€‹

Finally, we got the best responses from our attendees concerning the topics that are in high demand. In case you wanted to see more of Kotlin MultiPlatform (KMP), Career Stuff, Android Automotive, etc then just attend our next meetups. That's it, really ๐Ÿคทโ€โ™‚๏ธ...

The Code Reviewโ€‹

Alt text Are you a novice who would want to be put to the flame of Code Reviewing? Would you like to have a Senior Engineer (or even a GDE ๐Ÿ˜œ) assess the quality of your work? we are pleased to announce that we are now having Code Reviews as part of our community activities. January's meetup saw The Teaman conduct a Code Review Session using this GitHub repository. The audience learnt best practices, mistakes to avoid, as well as hacks pertaining take-home assignments...

The KotlinConf' 2024 Contestโ€‹

Alt text

If you thought that we are your average Tech community then you are as lost as J*va enthusiasts ๐Ÿšฎ. In preparation for KotlinConf' 2024, we are proud to announce that we have Samson Aricha as one of the winners for The KotlinConf' Contest ๐Ÿฅณ. Check out his product and learn from the best...

Whoa whoa whoa there! Did you seriously think that we had only one winner? Once again KotlinConf' announced Asira Etemesi as another champion for The KotlinConf' 2024 Contest. Head over to his product to learn more...

The 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 click me to make your aspiration a reality!

Alt text

Dear Readerโ€‹

It is at this point that we acknowledge our new beginnings and pledge to have a transformative 2024. We have journeyed with you and gears are about to be shifted (tech bros please calm down) in your favour. If you would like to level up your career in Android, then attending our monthly meetups, building in public, and interacting with our members should be a routine for you. We cannot wait to hear and share your stories. See you on February...

Alt text


ยท 5 min read
Emmanuel Muturiaโ„ข
MamboBryan
SheeWrites

Hi Droids and Droidettes! How are you? As the DroidCon Kenya 2023 event approaches, we are proud to announce the launch of the last Newsletter of the year! Yes, you heard us correctly. This is the final installment of the Kotlin Kenya Monthly Newsletters for the 2023 season and how best to do it than to have our fan favorite speakers lead the sessions? ๐Ÿฅบ Wanna find out more? ๐Ÿ˜ฎ Then grab a popcorn, take a mug or more of coffee like the Techie you are, and brace yourself for this is Newsletter #14, The October Edition:

The October Meetupโ€‹

Android254, in liaison with Kotlin Kenya, hosted the October Meetup which was spearheaded by Jacquiline Gitau, Abdulfatah Mohammed, and Jane Waitara. They each gave their presentations on the following topics that demonstrated the diversity of Android App Development (AAD):

The Art of Testing Composable Layoutsโ€‹

The Droidette kicked off by introducing the audience to the different kinds of Testing, namely: Unit Tesing, Integration Testing, and UI Testing. She added onto that by going over Semantics in Compose and how they aid in testing Compose elements. She supplemented that by discussing API Tetsing, which incorporated:

  • Finders
  • Assertions
  • Actions
  • Matchers

Jacquiline finalised her session by showcasing a demo project which implemented the libraries used in testing Compose elements...

Why I Have Come To Love Feature Modularizationโ€‹

Following that, we had The Modularizer taking over and explaining the motivations behind Modularization. They were but not limited to:

  • Presence of many moving parts in most fetaure packed Android apps
  • Rapid replacement of libraries...
  • Difficulty in connecting knowledge
  • Adherance to good architectural practices

He supported his argument by mentioning how Modularization results in freedom to work on more features, increased productivity, easier onboarding, and opportunities for experimentation. He utilised his personal project to demonstrate the magic behind Modularization by Feature. Abdulfatah concluded by insisting that for a Modularization driven approach, it was best to always prioritise the UI over Architecture when structuring the Android app...

Composing with Accessibility in Mindโ€‹

To mark the day complete, we had Mumbi Codes enlighten the attendees regarding the prioritisation of Accessibility when working on UI/UX. She began by acknowledging WHO's statistics which stated that between 15% to 20% of the world's population is categorised as people living with disabilities. She also cited some types of diabetes to give context on their need for specialised adjustments as far as Accessibility in Android was concerned. She listed the following as solutions to improving Accessibility in Android apps through Jetpack Compose:

  • Visual Elements
  • Headings
  • Semantics
  • Click Labels
  • Touch Target Size
  • Toggleable Selections
  • Text

Jane signed off the session by modelling a practical approach to teach the above concepts by use of a Jetpack Compose project...

DroidCon Kenyaโ€‹

Here's a rundown of everything you need to know about DroidCon Kenya with respect to the upcoming event:

DroidCon Kenya 2023 Ticketsโ€‹

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 discounted tickets will be gone and you will have to sell your house or something to afford the regular tickets? Don't worry, just click me and this can be our little secret ๐Ÿ˜‰...

DroidCon Kenya X Spacesโ€‹

Over the last few weeks, DroidCon Kenya has been hosting its weekly X Spaces hosted by Emmanuel Muturiaโ„ข whose sole purpose is to fill in the gaps you may have on DroidCon Kenya and its commitment towards delivering the best DroidCon events in Africa. Want to catch up with our latest conversations? The just click me to get access to more than a handful of quality banter...

The DroidCon Kenya Android App (Kotlin)โ€‹

Are you an Android (Kotlin) developer looking to flex your Open Source Contribution muscles? Want to show off your Problem Solving skills by contributing to the community? Worry not for the DroidCon Kenya team has released the latest issues for the DroidConKE2023 Android app for you to pick up and solve. In fact, click me to head over to the GitHub repository and squash those bugs like the wizard you are...

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!

Dear Reader...โ€‹

It is at this point, our dear reader, that we say thank you. We are deeply grateful for your support and engagement. As we mark the final Newsletter of the year, we usher you to our DroidCon Kenya 2023 event from the 8th to 10th of November, but you knew that, didn't you? ๐Ÿ˜ With that said, don't miss us too much for we will be back before you know it. See you on the 8th ๐Ÿ‘Œ

TUTORIAL
Detect Screenshots in Android 14

Got any other resources that you want to have featured? That's alright, cause all you have to do is click me and 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 (or next year, perhaps), happy coding & HAVE A NICE KOTLIN!


ยท 4 min read
Emmanuel Muturiaโ„ข
MamboBryan
SheeWrites

Hey there Droids and Droidettes! We know you missed us and we did too ๐Ÿฅบ We hope that you are excited for this episode as we have quite the comeback. From Machine Learning to Cyber Security, our speakers really outdid themselves by showing us just how versatile Android is. Wanna find out more? Grab a popcorn, take a coffee like the Techie you are, and brace yourself for this is Newsletter 13, The September Edition:

September Meetupโ€‹

Android254, in liaison with Kotlin Kenya, hosted the September Meetup which featured a new flavour of speakers: Musyoka Muasya, Oscar Karuga, and Emmanuel Muturiaยฎ. They each gave their presentations on the following topics that demonstrated the diversity of Android App Development (AAD):

Work in OfflineFirst Apps - Sync Data Sources with Work Managerโ€‹

Musyoka Muasya, the best Mathematical Developer in Kenya, gave a talk on Work Manager. He started off by reiterating on the functions and importance of Work Manager in the Android App Development workflow. Musyoka described the application of Work Manager in an offline-first environment through the use of a Closed Loop Control System which consisted of:

  • Input
  • Controller
  • Process
  • Output
  • Feedback

Muasya supplemented his demonstration with a Test and Optimization Case that incorporated Mathematical functions. Do you think you are capable of mastering the Mathematics behind Work Manager? Well then, here is Musyoka's presentation for you to knock yourself out: Click Me

Enhancing Android Apps with Machine Learningโ€‹

Following that, Oscar Karuga took the stage and introduced the audience to Machine Learning in Android. The son of Jupyter gave an elaborate walkthrough on the use of accurate but comprehensive data sets to train a customised AI model. He concluded by showcasing his Android application that wowed the audience by accurately differentiating between various images based on the model that he had trained...

Unlocking Passkeys in Android (feat Credentials Manager)โ€‹

Wrapping up the presentation set was the Android Security maverick himself Emmanuel Muturiaยฎ, who gave a stellar presentation on Passkeys in Android using Credential Manager. Emmanuel began by educating the audience on Passkeys, and why they should be considered a necessary asset in modern Authentication. He then went over the high-level implementation of Passkeys in Android using the Credential Manager API as well as things to consider when doing so. To spice up his presentation, Emmanuel posed three questions to the audience and rewarded the winners so don't say we didn't warn you against missing his talks... ๐Ÿ˜Œ

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 discounted tickets will be gone and you will have to sell your house or something to afford the regular tickets? Don't worry, just click me and this can be our little secret...

NB: Hey, psst! Are you a little low on cash and would like to be sponsored for the DroidCon Kenya 2023 event? Then click me to sign up for a sponsorship courtesy of Juma Allan...

Oh and last but not least, be on the lookout for the announcement of tetsing our open source DRoidConKE2023 app coming soon...

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!

Dear Reader...โ€‹

If you have made it this far, then please give yourself a high five! Seriously though, we deeply appreciate your support in growing the Android community in Kenya. You guys are the reason we are tightly knit and we definitely look forward to nothing but better in everything we do...

REPOSITORIES
BridgingTheGap
BioFinger
BeeTablesCompose
LIBRARIES
Floaty
COURSES
Building a Todo app using Firebase Cloud Firestore

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!


ยท 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!


ยท 5 min read
MamboBryan
SheeWrites

Hey there Droids and Droidettes! You've heard it all, yes? AI, Bard, at this rate we might just be starring in another episode of Love, Death and Robots (Well, especially the Love bit after Jack Siro's confession ๐Ÿ˜)

Google I/O Recapโ€‹

The Google I/O Recap featured two speakers: Theophillus Kibet and Mambo Bryan. They gave presentations detailing the fresh and new updates made in Android:

Android Highlightsโ€‹

Theo started off by highlighting the well-recieved Android 14 (Beta Version) which boasts susbstantial improvements, the main one being enhanced Privacy and Security. This was backed up by the Credential Manager which is set to utilise passkeys and passwords for a more security-driven sign in experience. Theo also talked about the latest updates and improvements in Jetpack Compose:

  • Text improvements, mainly the native inclusion of Emojis ๐Ÿ˜œ
  • Flow Layout improvements in both the Row and Column dimensions.
  • Tooling enhancements which has teased the release of several tools, the most notable one being Studio Bot (Take that ChatGPT!)
  • Introduction of Date and Time Pickers in Material Compose as well as Animations in Predictive Navigation.

Theo concluded by outlining and illustrating the newly released features of Google Play including the Update Prompt, Data Deletion (Privacy and Security), Ad Campaigns (Marketing), Inactive Users and Translations (Insights).

Kotlin Updatesโ€‹

Mambo Bryan lit up Kotlin developers' hearts by announcing the new approach taken to build the latest Kotlin Compiler involving the full adoption of Kotlin as opposed to the 'J' word. He emphasized how Kotlin 2.0 is projected to reduce build and compilation times, thus reiterating Kotlin's agenda of having fun while coding. Mambo discussed the new Kotlin DSL features: Precise code hinting, optional version catalogs integration, more documentation and probably the most important one, real time error handling without need to sync the project (Groovy had it coming). Mambo finalised by announcing the importance of using KSP in future code generation as opposed to KAPT.

Other Businessโ€‹

As if the talks weren't enough, the speakers joined by Tamre Frank, participated in a AMA (Ask Me Anything) which was moderated by Harun Wangereka who posed them juicy questions from Slido.com to which they heartily answered. BY THE WAY, the call for speakers for the monthly meetups is still on. Interested in giving a talk? Then feel free to submit an abstract of your preferred topic here

May 2023 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

class PrintingScope(val separator: String = "|")

context(PrintingScope)
fun <K, V> Map<K,V>.customPrint(): String = this.map { (k,v) -> "$k:$v" }.joinToString("$separator")

fun main() {
val scope = PrintingScope()
val map = mapOf("a" to 1, "b" to 2, "c" to 3)
assertEquals(
"a:1|b:2|c:3", // expected
evaluate(scope, map) // actual
)
println("Everything Passed!!!")
}

/**
* Without changing anything above
* Write an evaluate function that makes the test case pass
*/

tip

You can start by creating the evaluate function

Droidcon Kenya Updatesโ€‹

The largest android developer event in Africa has finally announced it's dates. This year droidconke is happening from the 8th to 10th November 2023. Ensure you clear your calendars and also look forward for the Call For Speakers (CFS). Follow DroidconKE here for more future updates. If you'd like to sponsor ๐Ÿ’ธ ๐Ÿ’ธ this event head over to this page.

KotlinConf'23 Videosโ€‹

KotlinConf'23 happened a few months ago and we got a chance to listen to Kotlin updates along with very nice technical sessions. Incase you didn't have the opportunity to livestream it, the recorded sessions have been uploaded on YouTube and you can watch them. Click here for more.

Saving The Best For Last ๐ŸŽ‰โ€‹

And this last one is truly the best news. We'd like to congratulate ๐ŸŽ‰ one of our community members Beatrice Kinya on becoming an Android GDE (Google Developer Expert) ๐Ÿคฉ. We're looking forward to more amazing contributions... ๐ŸŽ‰ You can also join us in congratulating her here. ๐Ÿฅณ๐Ÿฅณ๐Ÿฅณ

ARTICLES
An In-depth overview of Android's Recyclerview - with Example
Animating Content Size in Compose
Firebase in Jetpack Compose (Authentication & Adding Data To Cloud Firestore)
Android Development with Jetpack Compose: The Future of Android UI Development
Custom Theming in Jetpack Compose
Exploring Kotlin's Abstract Classes and Specialized Class Types
HTTP Requests in Android (Behind The Scenes)
REPOSITORIES
ML Kit Sample
Gamepedia
CookIt
Simple TODO List Ktor Backend
OnBoarding
VIDEOS
Migrating to Kotlin Scripts and Version Catalog
Error Handling and Unit Testing: MVI Compose Weather App
Apps
Palette Lab

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

That's it folks till next time, happy coding & HAVE A NICE KOTLIN!


ยท 4 min read
MamboBryan
SheeWrites

Hello ๐Ÿ‘‹ there droids and welcome back to another newsletter edition for March 2023. We hope you enjoy it and won't speed through it like the CX-5 ๐Ÿ˜‰ ๐Ÿ˜‰

Monthly Meetupโ€‹

Starting us off is our monthly meetup. Given that international women's day came around not that long ago, it was an all-ladies affair with just female speakers taking the stage.

Testing Our Endpoints: Ktorโ€‹

The first session led by Rachel Nafula shed light on the importance of Ktor for any developer. We learned a lot from how it simply connects the client to the server by making a request and ensuring an appropriate response is returned. In the same breath, we were reminded the importance of testing our code before pushing to production, to ultimately prevent inevitable disaster. It was also brought to our attention that there two types of tests ie: manual & automated. For demonstration purposes, she used Insomnia but postman(and the like) is also viable.

Compose Modifierโ€‹

The second session by Beatrice Kinya hailed Compose Modifiers from the word go. As the great migration from the traditional view system to compose is ongoing it was refreshing to understand a little bit more about Compose Modifier. We got to learn a few concepts we can use to change the appearance and behavior of composables.ie the order of precedence and constraints. We then proceeded into the types of Modifiers (add content). Lastly, we learnt of the three phases of compose which are; Composition, Layout and Drawings!

Let's Animate In Composeโ€‹

Last but not least the final session by Jacqui Gitau was all about animations. It is imperative to mention how animations bring our apps to life and the little interactions contribute to a great user experience. In the final session, we learned how to animate, why we should animate and the overall benefits of adding animations to our apps. From sliding in to fading out, we enjoyed how simple she made animations feel.

We enjoyed this month's meetup and thank all the speakers and attendees. We're looking forward to the next meetup!

Kotlin Quizโ€‹

After a few jokes and not-so-few laughs the stage was set for a brief Kotlin quiz to warm up the afternoon. Droids tried to attempt the quizes one after the other with no winner was in sight, until Victor Kabata and Jane Waitara emerged victorious to take the win home.

If you'd also want to attempt the two question shared during the meetup, here they are ๐Ÿ‘.

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

/**
* Without changing anything in the main function.
* Ensure all the test cases pass
*/

fun main() {

assertEquals(
"Welcome to Android254!", // expected
sayHello { "Android254" } // actual
)
assertEquals(
listOf(2,4,7), // expected
listOf(1,1,2,3,3,3,4,5,5,6,6,6,7).getNonRepeated() // actual
)

println("Everything Passed!")

}
tip

You can start by creating the sayHello & getNonRepeated function

KotlinConf'23โ€‹

The official conference devoted to the Kotlin Programming Language is finally here. From April 12th to 14th join the Livestream and benefit from the array of topic to boost your Koltin skills.

We can't mention KotlinConf without celebrating our two community members who'd be attending the conference in person. Brian Mbigo was one of the winners of the Kotlin Multiplatform contest with his amazing VisioZoezi app and Harun Wangereka with an excellent talk Transforming Farmer's Lives Using Android In Kenya on April 13th from 6:15 pm to 7:00 pm EAT.

We'll also have a KotlinConf 2023 Global - Nairobi Edition to learn more about what went down at KotlinConf'23 and share your opinions... don't forget to RSVP and watch out for the upcoming CFS...

KotlinBitsโ€‹

Sometimes all you need is a different perspective when learning the Kotlin language. KotlinBits aims at trying to explain every Kotlin concept in small bits and sizes. Watch out for even more content from their website and YouTube channel.

ARTICLES
Introduction To Kotlin Programming by Dbraine.
Custom Compose Layouts by Beatrice Kinya.
REPOSITORIES
NFT-App by Stephen Muindi
Mars Rover Photos by Victor Kabata
Fibonacci by Jane Waitara
Harry Porter API by Ken Starry
VIDEOS
Mastering the Fundamentals of Android App Development
Getting Started as an Android Developer: Tips and Tricks for Success
Becoming an Android Developer
Foreground Location : MVI Compose Weather App Pt.1
Apps
CarRental by Chienja Dev
Mingle - Find Singles by Felix Kariuki
MealTime by Joel Kanyi

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

That's it folks till next time, happy coding.

info

We'd love to hear your feedback. Click here to submit any feedback.