Image Viewer with Java MVP, Kotlin MVP, Kotlin MVVM, and Jetpack Compose

ImageViewer Kotlin MVVM using Jetpack Compose, Mutable State, Hilt, Coroutines and Proto Datastore on GitHub
ImageViewer Kotlin MVVM using LiveData on GitHub
ImageViewer Kotlin MVP on GitHub
ImageViewer Java MVP on GitHub

So why write the same app four different times? Originally coded in 2018, the inspiration for this app came from Googles’ Architecture Samples repo on Github. They wrote, and continue to rewrite, a simple To Do list app using a variety of frameworks and architectures. They chose a simple app in order to highlight the architectures without getting bogged down in specific details. Their To Do app focuses on a database. Mine focuses on the internet.

Screen Shots

Workout Video Player for Android in Kotlin with MVVM

Workout Video Player source on GitHub

I coded this app in early 2022. It shows workout videos from Youtube and demonstrates implementation of the Youtube API.

In this repo you’ll find:
* A main navigation screen built on a single activity with three tabs using a fragment pager.
* User Interface built with a ViewModel for every screen that displays active data.
* Reactive UIs using LiveData.
* Consumption of a REST api, using Square’s Retrofit2 library.
* Image loading with BumpTech’s Glide library.

Screen Shots




Stock Tracker for Android

Stock Tracker source on GitHub

Coded in 2017, this is a showcase app to demonstrate Android frameworks and best practices from the mid-2010’s.

In this repo you’ll find:
* A multi-activity architecture employing the Model-View-Presenter design pattern.
* Access to a REST api, using Square’s Retrofit2 library.
* Persistence using an SQLite database.
* Web and database calls using Thread Executors for asynchronous operations.

Screen Shots

Comic Con Finder for Android

Comic Con Finder source on GitHub

Stock Tracker
Find upcoming Conic Con conventions in your area. Because everybody loves a Comic Con.

Polymorpheous Button for Android

Polymorpheous Button source on GitHub

Stock Tracker

A fun little custom button that limits the touch area only to the button’s image. You can use it to create buttons of any shape, including non-contiguous buttons.

The following two apps were used as part of talk I gave at the Cambridge Kotlin Meetup on the topic of Kotlin/Native.

Meteoroids in Kotlin

Meteoroids Kotlin source on GitHub

A simple 2d space shooter game written primarily in Kotlin.

Meteroids in Kotlin/Native

Meteroids Kotlin/Native source on GitHub

The same game from above – but written in Kotlin/Native.


Katas source on GitHub

A collection of solutions to common algorithm challenges.