Projects
quick links: #MyLittleCookDiary #GardenBay #Sip&Stir #CosMath #iExpense
iOS NATIVE APPS
#SwiftUI
My Little Cook Diary
My Little Cook Diary is an app designed to help users document their everyday cooking experiences.
Users can jot down quick notes, upload photos, rate their dishes and add comments to keep track of their culinary journey.












Turn your daily cooking into a journey of creativity, learning, and delicious memories.
Key Features
📝 Recipe Logging
Users can record recipes with notes, ratings, and photos.
⚙️ Dynamic Filtering
Recipes are grouped and filtered by genre using SortDescriptor and sorted list & filter.
📌 Comment System
✔️ Track improvements by adding dated comments, auto-sorted by recency.
✔️ Cascade delete rule(Parent-Children Relationship) applied, every data of comments would removed as the page deleted.
📁 Data Persistence
Utilizes SwiftData for local storage and query-based sorting.
💡 Interactive UI
✔️ Supports both bulk or swipe-to-delete, and filtering by genre with ToolbarItem actions.
✔️ Star rating style by user click by .buttonStyle(.plain) modifier.
Tech Stack
🛠️ Framework & Architecture
🏠 Data Management
🔗 State Management
🏞️ Image Handling
PhotosUI, PhotosPicker
🧭 Navigation
NavigationStack, navigationDestination, Sheet
🎨 Custom UI
Theme Extensions, Dynamic Sorting & Filtering
Garden Bay














Seamless flower ordering at your fingertips—let the magic unfold and share love & joy effortlessly.
Garden Bay is a seamless flower ordering app that lets users select from a variety of blooms, customize their gifts with add-ons, and save up to 10 addresses from previous orders for quick checkout.
With quick order processing via secure server and real-time confirmation, sending flowers has never been easier.
Key Features
🌸 Flower & Gift Ordering System
Users can select flowers and add-ons like balloons or chocolates via a dynamic Form with validation and disabled submission when incomplete.
🏠 Address Management
Save up to 10 addresses in AppStorage, auto-remove duplicates.
📦 Order Placement
✔️ Sends HTTP server requests to place orders using URLSession with proper error handling (do-try-catch).
✔️ Displays confirmation on success, then resets NavigationPath to return to the home view.
🖼️ Visual Feedback
✔️ Loads product images asynchronously from server URLs using AsyncImage.
✔️ Provides haptic feedback on key interactions using CoreHaptics.
Tech Stack
🛠️ Framework & Architecture
🏠 Data Management
🔗 State Management
📡 Protocol & API
Codable, CodingKeys, URLRequest, URLSession
🏞️ Image Handling
AsyncImage (via image URL)
🧭 Navigation
NavigationPath
🔊 User Experience
CoreHaptics
Sip & Stir








Explore cocktails by category with recipes and photos, all powered by a decoded JSON file.
A sleek cocktail recipe app Sip & Stir categorizing drinks by their base alcohol, such as rum, whisky, or wine.
Recipes and images are dynamically loaded from a JSON file using Bundle decoding, while the UI is optimized with GridItems for a visually engaging experience.
Key Features
🍸 Cocktail Cataloging
Explore cocktails organized by base alcohol (e.g., rum, whisky, gin), offering a smooth and categorized browsing experience.
📐 Dynamic Layout
Displays cocktail recipes in a responsive grid layout using LazyVGrid and GridItem, ensuring smooth scalability for different device sizes.
📄 Seamless Data Handling
✔️ Decodes and presents cocktail data from a local JSON file with the Bundle Decoder.
✔️ Utilizing the ternary operator, assigned default values for missing data in the JSON file will be displayed. This ensures an optimized and secured data managements.
Tech Stack
🛠️ Framework & Architecture
🏠 Data Management
🔗 State Management
📡 Protocol & Model
Codable, Identifiable, Hashable
🧭 Navigation
NavigationStack, NavigationLink
CosMath










Facilitate multiplication practice for kids, featuring customizable quizzes and a gamified reward system.
CosMath is an educational app designed to help users practice multiplication tables from 2 to 12. Users can customize the number of questions and difficulty level.
As they answer questions correctly, they earn "planetary levels" as rewards, which serve to motivate and engage learners.
Or Scan
Key Features
🧐 Custom Quiz Generator
Users can set difficulty levels, number of questions, and selected times tables.
⏱️ Real-time Feedback
Immediate grading with an interactive results summary.
🏆 Reward System
Users earn planetary levels based on progress to encourage engagement.
🌎 Adaptive UI
Optimized layout for iPhone and iPad using dynamic grids.
📁 Data Persistence
Stores past quizzes and scores in @State for progress tracking of current game.
Tech Stack
🛠️ Framework & Architecture
🔗 State Management
📐UI Components & Layout
LazyVGrid, Stepper(), GridItem
🚥 Logic & Control Flow
Switch/Case, Enum
iExpense








A personal finance tracker for budgeting and expense management with selections of multiple currencies.
Smart Spending, Better Saving. Anywhere in the World.
iExpense provides a personal finance tracker for budgeting and expense management with selections of multiple currencies.
Key Features
💸 Expense Tracking
✔️ Users can log and categorize expenses as either Personal or Business.
✔️ Filtered display of categorized expenses using Sectioned List.
📁 Data Persistence
Data is encoded/decoded via JSONEncoder and JSONDecoder, saved locally using UserDefaults.
🎨 Dynamic UI Feedback
Color-coded budget ranges (Low, Medium, High) for expense amounts.
🛠️ Custom Settings
Users can select preferred currencies from a full currency list using dynamic toggle switches.
🗑️ Data Management Tools
✔️ Supports swipe-to-delete functionality.
✔️ Expenses automatically persisted with didSet observer on the items array.
Tech Stack
🛠️ Framework & Architecture
🏠 Data Management
🔗 State Management
📡 Protocol & API
Codable, Identifiable
🧭 Navigation
NavigationStack, navigationDestination, Sheet
🧩 UI Components
List, Form, Section, ToolbarItem, EditButton