My GitHub Portfolio
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

Polymorpheous Button for Android
Polymorpheous Button source on GitHub
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.
Kata
A collection of solutions to common algorithm challenges.