Bonus Lectures & Bonus HW

Bonus Lecture: Architecture and Design Patterns

Lecture: Google Slides

Bonus Lecture 1: Intro to Jetpack Compose

Bye-bye, XML!

Demo Code:

Bonus Lecture 2: Recomposition & Live Data

Demo Code:

Bonus Lecture 3: Kotlin & Functional Programming

Demo Code:

Bonus Lecture 4: Eatery & Jetpack Compose

Demo Code: AppDev GitHub :)

[OPTIONAL] Bonus Homework Instructions:


For this assignment, you will be tasked with creating an app--any app--in Jetpack Compose.

We're keeping the actual implementation of the app largely up to you--that is, besides the basic functionality & requirements we'll describe below, the look and function of the app is yours to design! Of course, cleaner and more intricate designs will award more credit.

Since this assignment is much more free-form, we will not be giving you a procedure to follow, but rather a credit breakdown of points that you will be awarded for meeting certain criteria.

You can complete as much or as little of the credit breakdown as you'd like--this is a bonus assignment, after all!

Note: Although we mentioned we were planning to make you recreate previous homeworks for this assignment, there has been a change of direction for this assignment. We will NOT be permitting you to submit a direct recreation of previous homeworks.

Credit Breakdown (12 pts max):

  • 1 pts - One full Composable screen exists.

  • 2 pts - More than one full Composable screen exists, and there is a way to navigate between the two.

  • 2 pts / screen, 4 pts max - Recomposition is implemented that makes the app react real-time to some user input. This could be through Buttons, Sliders, TextFields, and more!

  • 1 pts / animation, 3pts max - Animation exists in any capacity. This could be through a composable fading in/out, popping in, or changing in any other way over time without direct user input.

    • (i.e. a color changing due directly to recomposition caused by a Slider would not count towards this.)

  • 2 pts - The app is based off a creative idea that serves actual utility. Be creative and come up with an app idea that inspires you!

    • (If I was given this assignment, I'd make a factorial/Fibonacci calculator, for example! But you probably could have already guessed that...) - Justin


Since this assignment is on Compose whereas this course is primarily focused on Android Native, you'll most likely have to search online for ways to complete some of the problems. However, for most of the more basic criteria, you can likely consult our demos and slides.

References from our lectures:

  • Bonus Lecture 1:

    • Jetpack Compose

    • Composables

    • Modifiers

    • Animation as State

  • Bonus Lecture 2:

    • Recomposition

    • Live Data

We're excited to see what you can compose!

Last updated