Flipperly App

My Role as a Solo iOS App Developer

Overview

Flipperly is my passion project—an iOS flashcard-based memory revision app built entirely by myself in Swift and SwiftUI. While many people spend their spare time on unrelated hobbies, I dedicate mine to designing, coding, testing, and publishing my own iOS apps. This all-encompassing experience has sharpened both my technical prowess and project ownership capabilities.

In larger teams, responsibilities like UI/UX design, feature development, quality assurance, and App Store submissions are split across multiple roles. For Flipperly, I filled all those roles—single-handedly delivering a production-ready app that reflects my dedication, innovative coding techniques, and deep understanding of iOS best practices.


Download

Get Flipperly for iOS.


User Stories & Demo

Story 1: The Language Learner

“As a language learner, I want to see all my vocabulary flashcards due today on one screen, so I can systematically review them without missing anything.”

Flipperly tackles this by automatically surfacing due flashcards each day. A quick tap flips the card to reveal the answer, and each remember or forgot action adjusts the future review schedule. This ensures learners stay consistent without manual tracking.

Story 2: The Busy Professional

“As a busy professional, I need an efficient way to track new concepts or reminders. I only have a few minutes to swipe through flashcards, so every interaction must be fast and intuitive.”

Flipperly’s gesture-based controls let users swipe left or right to mark results. Cards animate away in a single movement, and the app handles scheduling behind the scenes. Because everything is stored locally, it launches quickly and works offline—ideal for short, on-the-go study sessions.


Watch Flipperly in Action

Project Highlights

1. Core Purpose & Functionality

  • Flashcards with Spaced Repetition
    Each card has a front (question) and back (answer). The next review date is automatically scheduled based on user input:
    • Forget: Resets to the very next day.
    • Remember: Follows incremental intervals (2 → 4 → 7 → 15 → random(20–50) days).
  • Two Main Views
    • Home (Review) Tab: Displays current due flashcards in a large, card-flipping interface.
    • Decks Tab: Organizes flashcards into collapsible decks, each with add/edit/delete functions and a grid preview.
  • Rich Editing & History
    Easily create or modify flashcards, and view the review log (dates and success/failure) to track progress.

2. My Role (A One-Person Army)

I took on every aspect of the product:

  • Design & UI/UX
    Developed a visual style in SwiftUI using custom animations, sleek transitions, and user-friendly layouts.
  • Architecture & Code Quality
    • Structured the data with custom models (Flashcard, FlashcardDeck), employing local JSON storage.
    • Implemented an undo/redo system for review actions, ensuring users can revert accidental taps.
  • Spaced Repetition Logic
    Programmed the algorithm to compute review intervals—using day calculations and random long-term intervals after repeated successes.
  • App Store Delivery
    Single-handedly tackled provisioning profiles, TestFlight, and final publication under Apple’s review guidelines.


Technical Breakdown

SwiftUI Highlights

  • Custom Views & Animations
    • FlashcardFlipView for 3D flipping transitions.
    • DeckRowView & DeckFlashcardItemView for deck organization and context menus.
    • Toast Messages for quick feedback on upcoming review dates.
  • State Management
    • @StateObject centralizes data in FlashcardViewModel.
    • @EnvironmentObject and @Binding to keep subviews in sync without complexity.

Persistence & Data Handling

  • Local JSON
    Uses JSONEncoder/JSONDecoder (with .iso8601 date encoding) to securely store decks without external dependencies.
  • Scalable Structure
    The architecture can pivot to iCloud or a server-based approach if future expansions demand broader storage solutions.

Gestures & Haptic Feedback

  • Intuitive Swiping
    Swipe left (forgot) or right (remembered) to mark each flashcard, with dynamic color overlays.
  • Haptic Interactions
    UIImpactFeedbackGenerator for a satisfying “click” feel on flips, taps, and tab switches.


Project Outcomes

  • User-Friendly & Engaging
    A minimalist UI keeps daily reviews quick, enabling consistent study habits.
  • Comprehensive Feature Ownership
    Handling design, code, QA, and the App Store cycle gave me a holistic perspective on software development.
  • Elevated Coding Skills
    Gained deeper expertise in SwiftUI’s powerful animation system, local data persistence, and multi-layer state management.
  • Future-Ready
    The design allows for easy feature extensions, from advanced analytics to integration with external SRS (Spaced Repetition System) platforms.


Personal Growth & Reflection

Technical Depth

  • Created a robust app from scratch, leveraging advanced SwiftUI, concurrency, and iOS best practices for animations, gestures, and triggers.

Relentless Work Ethic

  • I genuinely love to code, spending countless hours refining every interaction and ensuring it meets high-quality standards.

Self-Driven Project Management

  • Owned the entire development timeline, from idea brainstorming to final deployment, continuously iterating based on test feedback.

Adaptability & Resilience

  • Solved SwiftUI corner-cases, overcame daily design challenges, and balanced new feature ideas with stable release cycles—doing it all solo.


Final Thoughts

Flipperly showcases my commitment to clean code, user-focused features, and nimble innovation. From design and coding to testing and promotion, I’ve proven my ability to deliver end-to-end app solutions with speed and care. I’m excited to bring these skills—honed in building Flipperly—to any future iOS development team or project.