Back to Projects

Capture - Android Application

Lead Mobile Developer2023 - 2024

A real-time image sharing social network application written in Java. Features Firebase synchronization, Cloudinary media storage, and instant updates.

Application Topology & Integrations

frontendAndroid Mobile App (Java)
databaseFirebase Realtime DB
externalFirebase Auth
externalCloudinary API

Data Flows & API Integrations

Android Mobile App (Java)Firebase Auth1. Authenticate
Android Mobile App (Java)Cloudinary API2. Upload Media
Android Mobile App (Java)Firebase Realtime DB3. Write Metadata
Firebase Realtime DBAndroid Mobile App (Java)4. Sync Feed

Android Logcat Sync Simulation

Select a scenario to view simulated device Logcat event traces.

android-logcat.log
2026-06-10 20:40:01 - Mobile: Camera intent captured image: IMG_2026_06_10.jpg (3.8 MB)
2026-06-10 20:40:01 - Mobile: Initiating Cloudinary upload stream...
Cloudinary: Compressing image file... Reduced payload to 850 KB.
Cloudinary: Image uploaded. CDN Link: https://res.cloudinary.com/demo/image/upload/v1/IMG_2026.jpg
Mobile: Writing URL metadata to Firebase Realtime Database node '/posts/new_post'
Firebase: Realtime Sync triggers complete. Broadcasted post to 12 active online users.

Mobile Development & Platforms

Firebase Realtime DB

Real-time Database Syncing

Configured Firebase event listeners sync-ing local cache storage dynamically with live remote database servers.

Cloudinary SDK

Cloud Media Pipelines

Integrated Cloudinary SDK to handle mobile upload streams, compressing image file payloads before transmission.

Gradle Build Automation

Android Packaging Pipelines

Managed Gradle automation configs compiling mobile dependencies and packing APK build targets.

Get Android Source Code

Clone the repository to import and compile the project files directly in Android Studio.

# Clone Capture Android source code
git clone https://github.com/arcreane/android-project-pineapple.git

Engineering Challenges & Design Decisions

Offline Image Upload Failures

Problem

Uploading images over unstable mobile networks caused frequent socket timeout errors and data losses.

Engineering Solution

Implemented an offline queue manager in SQLite. If network drops, image metadata is saved locally, and a background Gradle worker automatically restarts uploads when internet connectivity returns.

Key Achievements & Metrics

  • Reduced mobile bandwidth usage by 70% using Cloudinary compression.
  • Guaranteed offline usability through local storage caching.
  • Developed a responsive feed updating in under 1 second using Firebase socket bindings.