Learn Japanese - Pidu: AI Chat Practice & JLPT N5-N1 Drills
Added AI-powered conversation practice using on-device NLP. Users can now simulate real Japanese dialogues and get instant feedback on grammar and vocabulary.
Ship log
A public journal of what ships from this studio — features, fixes, and the occasional engine rebuild. Newest first.
Added AI-powered conversation practice using on-device NLP. Users can now simulate real Japanese dialogues and get instant feedback on grammar and vocabulary.
Launched our comprehensive Japanese learning app covering Kanji, Hiragana, Katakana with JLPT prep from N5 to N1. Includes daily lessons and spaced repetition flashcards.
Implemented a custom SRS algorithm tuned for Japanese character recognition. Review intervals adapt based on stroke complexity and user accuracy history.
Shipped an integrated Japanese news feed with furigana annotations and a curated podcast section. Users can now immerse in native content while building vocabulary.
Released MOJiKana — covering Hiragana, Katakana, and 2,000+ Kanji with vocabulary drills, graded Japanese news, and podcast content for beginners through advanced learners.
Designed a CoreData-backed Kanji dictionary with 2,000+ characters, stroke order data, and reading examples. All content works fully offline after initial sync.
Added accelerometer-based sleep stage estimation and a smart alarm that wakes you during light sleep. Morning reports now show sleep cycles with duration breakdowns.
Launched our ambient sleep app combining rain, thunder, and forest soundscapes with sleep cycle tracking. Uses iPhone sensors to analyze sleep quality overnight.
Engineered a dual pipeline: AVAudioEngine handles layered ambient sounds while CoreMotion records accelerometer data in the background for sleep phase analysis.
Added a weekly trend chart showing mood patterns over time plus PDF export for sharing with therapists or personal records. Charts use SwiftUI Charts framework.
Released a minimal mood journal that lets you log daily emotions with one tap. Visualizes patterns over weeks and months to help understand emotional wellbeing.
Iterated on the mood input UI — tested emoji grids, sliders, and color wheels before landing on a simple 5-point scale with optional journal notes. Less friction, more entries.
Shipped weekly meal planning with auto-generated grocery lists. Users can drag recipes into a 7-day plan and export shopping items to Reminders or Notes.
Published a collection of authentic Japanese recipes — from sushi and ramen to healthy bento bowls. Each recipe includes step-by-step photos, nutritional info, and cooking timers.
Modeled recipes as a hierarchy: Dish → Sections → Steps, each with ingredients, timing, and media. This powers the step-by-step cooking mode with voice-over support.
Added estimated A1C calculation from logged glucose readings and a printable PDF report designed for sharing with healthcare providers at checkups.
Released a clean, minimal blood sugar logger. One-tap glucose entry with time tagging (before/after meal), trend charts, and HealthKit integration for Apple Health sync.
Integrated HealthKit for reading and writing blood glucose samples. All data stays on-device — no cloud sync, no accounts. Privacy-first design for sensitive health data.
Expanded vocabulary to HSK levels 5 and 6 with 2,500+ new words. Added a handwriting recognition feature where users trace characters and get real-time stroke feedback.
Launched a Chinese learning app covering all HSK levels. Practice reading, learn characters with flashcards, and build vocabulary at your own pace with spaced repetition.
Built a custom stroke order animation system using Core Graphics. Each character is broken into individual strokes with directional arrows and numbered sequence overlays.
Added detailed focus statistics — total hours, average session length, weekly streaks. A motivational dashboard helps users track their deep work consistency over time.
Shipped a Pomodoro timer paired with ambient focus sounds. Customizable work/break intervals, background audio mixing, and distraction-free minimal UI.
Designed a finite state machine for timer states (idle → focus → break → idle). AVAudioSession configured for background playback so focus sounds continue when the screen locks.
Added Roku TV protocol support alongside Samsung, LG, and Sony. Users can now customize the remote layout — rearranging buttons and adding app shortcuts.
Released a universal smart TV remote for iPhone and Android. Discovers TVs on your local network via SSDP/mDNS and provides an intuitive touchpad-based control interface.
Implemented SSDP and mDNS scanning to auto-discover TVs on the local network. Each brand uses a different control protocol — Samsung uses WebSocket, LG uses HTTP, Sony uses IRCC.
Shipped batch document scanning — feed multiple pages in sequence and they auto-merge into a single PDF. Added sharing to iCloud Drive, Google Drive, and email.
Launched a document scanner that turns your iPhone camera into a portable scanner. Auto-edge detection, perspective correction, OCR text recognition, and PDF signature support.
Leveraged VNDocumentCameraViewController for automatic edge detection and perspective warp. PDFs are generated with PDFKit, supporting multi-page documents with embedded OCR text layers.
Added narrated bedtime stories with a gentle fade-out timer. Users can mix nature sounds with story narration and set a custom duration before audio gradually silences.
Launched a calming audio app with nature sounds — rain, ocean, forest, white noise — and bedtime stories. Designed to help users fall asleep faster with immersive soundscapes.
Built an audio mixer that lets users blend multiple sound layers (rain + thunder + fireplace) with individual volume controls. Uses AVAudioEngine with real-time audio graph routing.
Added iOS home screen widgets showing your habit contribution graph at a glance, plus gentle streak reminder notifications to keep momentum going.
Released a minimal habit tracker inspired by GitHub contribution graphs. Track daily habits, build streaks, and visualize your consistency with a color-coded grid over months.
Built the contribution graph as a custom SwiftUI LazyVGrid with dynamic color intensity based on completion count. Streak calculation uses a calendar-aware algorithm handling timezone edges.
Added speech recognition for pronunciation scoring using Speech framework. Plus local leaderboards to gamify daily XP and encourage consistent practice.
Released Elingo — learn languages through bite-sized games, quizzes, and interactive lessons. Covers vocabulary, grammar, and reading comprehension for multiple languages.
Designed a lesson engine with XP rewards, combo multipliers, and daily goals. Each lesson mixes card-matching, fill-in-the-blank, and listening exercises to keep engagement high.
Expanded the filter library with 12 analog film presets (Kodak, Fuji, Polaroid styles) and 8 vintage frame templates. All filters use Core Image with GPU-accelerated rendering.
Launched a retro photography app that applies authentic vintage filters, classic film grain, and analog photo frames. One-tap editing with real-time preview.
Created chained Core Image filters that replicate analog film characteristics — color shifts, grain patterns, vignetting, and light leaks. Each preset is a tuned filter graph.
Added tagged focus categories (study, work, creative, reading) and a searchable session history. Users can now review how they allocated deep work across different areas.
Shipped a beautiful Pomodoro timer with customizable session lengths, break reminders, and detailed focus statistics. Minimal interface designed to reduce distractions.
Built the timer using Combine publishers for precise tick intervals. Added haptic feedback patterns — subtle pulse during focus, gentle bump at breaks — using UIImpactFeedbackGenerator.
Added AI-powered habit suggestions based on user patterns and milestone alerts (30-day, 100-day, 365-day) with shareable achievement cards.
Released a life calendar app that visualizes your entire life as a grid of dots. Track milestones, build daily habits, and see your journey unfold week by week.
Rendering 4,000+ dots (one per week of a 80-year life) required careful optimization. Used a custom UICollectionView layout with cell recycling and lazy color computation.
Added a post-sleep snore intensity timeline and an overall sleep score combining snore frequency, duration, and loudness. Scores help track improvement over weeks.
Released an AI-powered snore recorder that listens overnight, detects snoring events, and provides morning reports with audio clips and pattern analysis.
Trained a Core ML sound classification model to distinguish snoring from ambient noise. Runs entirely on-device using AVAudioEngine with a streaming buffer for real-time detection.
No entries for this filter yet.
Longer essays on the craft behind these releases live on the blog — design decisions, post-mortems, and lessons from the App Store trenches.
Read the blog