Skip to content
Mai Trinh
Completed

Biske

Android developer for Biske, an internal team-collaboration app — sole developer during my time on the project, responsible for its task-management, messaging, and document-handling features.

Role
Android Developer — sole developer during my involvement
Platform
Android
Client
Confidential client

Project overview

Domain
Internal business tooling — team task management, scheduling, and messaging, built as a single codebase that is rebranded and re-released for each client company.
Product
Biske is an internal Android app for team collaboration: a Kanban-style task board with categories and boards, group and personal conversations, and document/photo sharing. Rather than a single shared multi-tenant app, the same codebase is built and released as a separate, distinctly branded app for each client company using Android build flavors.
Audience
Employees at each client company that adopts Biske, who use it day to day to plan and track tasks, communicate with teammates, and share files and photos related to their work.
Why it exists
Biske gives companies a ready-made internal collaboration tool — a task board plus team chat — that can be relabeled and deployed under each client's own branding without building a new app from scratch for every company.
Problem
For the parts I worked on, the problem was building the core Android experience a team relies on day to day: signing in, creating and moving tasks across a Kanban-style board, communicating in group and personal conversations, and capturing/sharing documents and photos within that work.

My role & contributions

As the sole Android developer during my time on Biske, I worked on the app's authentication, the Kanban-style task board (creating and editing task cards, categories and boards, with drag-and-drop reordering of tasks and columns), group and personal messaging/conversations, and document and photo handling (capture, cropping, and compression for sharing within tasks and conversations). A calendar/scheduling feature was added to the app by another developer after my involvement ended and is not part of what I built.

Challenges & solutions

  1. Technical challenges

    Two areas were genuinely complex in the parts I worked on. First, the task board needed drag-and-drop reordering of both tasks and columns to stay consistent with the underlying data — a card's or column's position in the UI had to match its persisted order after every move. Second, the app combines two backends — a Firebase-backed layer for real-time features like conversations, and a separate REST API with its own token-refresh authentication — and keeping both in sync from the UI layer took care.

    How I approached it

    For the task board, drag-and-drop reordering was built on a dedicated drag-and-drop list component, with the app's own adapters and view models keeping each card's and column's position, category, and board assignment consistent as the user reordered them. For the dual-backend setup, the app's data layer separated Firebase-backed real-time features (conversations, presence) from REST-backed features behind a shared repository pattern, so the rest of the app could consume either source through the same view-model layer.

Architecture & technologies

Biske is a multi-module Kotlin Android app (the main app, plus separate library modules for the task board's drag-and-drop list and for a calendar view) using Hilt for dependency injection, ViewBinding with an MVVM structure, and a hybrid backend of Firebase (Realtime Database, Firestore, Auth, Cloud Messaging) and a custom REST API (Retrofit/OkHttp with token-refresh auth). The product is released per client company using Android build flavors — each company gets its own applicationId, app name, and branding resources, built from the same codebase and a shared Firebase project, rather than a single multi-tenant app. The calendar module and its screens were added to the codebase after my involvement ended.

Technologies

  • Kotlin
  • Hilt
  • Firebase Realtime Database
  • Firebase Firestore
  • Firebase Authentication
  • Firebase Cloud Messaging
  • Retrofit
  • OkHttp
  • Glide
  • Google Maps

This project demonstrates

This project shows sole ownership of an Android app's core day-to-day functionality — authentication, a drag-and-drop task board, messaging, and document handling — in a codebase built to be re-branded and redeployed per client company, plus working across a hybrid Firebase/REST backend.

  • Android Development
  • Authentication
  • Third-Party Integration
  • Media Processing
  • Maps & Location

Have a similar project in mind?

Tell me about your product or challenge, and we can discuss how I can help.

Work With Me