A few months after completing #100DaysOfSwiftUI , my first app got released to the app store. It's a simple memory game. I've learnt so much while developing this app. Check it out folks. Feedback is welcomed :) Thank you @twostraws for inspiring me!
mempath.apphq.online
Working to build my first personal app after completing the 100 day course. Exciting and early days, prob going to be writing a lot of bad code, but let's see if it this works out :)
Just trying to create a simple mobile game, its sort of like a memory game where the user has to create paths in a grid based on some challenges. Not a super complex game but lots of good problem solving and coding practice for me :)
🎉 I just finished Day 100 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
What a journey this was. @twostraws , thank you for everything. You've unlocked new skills for me. I've even starting working on simple tickets at work and contributing to features!
🎉 I just finished Day 99 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Challenge:
- User defaults for saving loading data
- add credits to image
- Add custom sorting on Resort struct to sort resort list
🎉 I just finished Day 98 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Learnt
- add searchable function
- resize layout based on font & screen size
- replace text with icons
- alert: optional binding with obj val
- env modifier: pass obj into diff views
🎉 I just finished Day 97 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
SnowSeeker:
- Build layout - NavigationSplitView
- List view with detail view using view composition
- Learnt some syntactic sugar with arrays
- Size views in Groups
- Clean array format
🎉 I just finished Day 96 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Learnt:
-NavigationSplitView
- Optional to display sheet/ pass value in alert
- presentationDetents
- Group modifier
- size classes
- ViewThatFits
- searchable
- Environment objects
🎉 I just finished Day 95 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Dice Roller app: Done!
Concepts used:
SwiftUI layouts/TabViews
Timer publisher from Combine
External library using SPM for 3D dice image
Animation
Custom SwiftUI Shape
Yay! :)
🎉 I just finished Day 94 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Think I completed the challenge?
- fade out opacity towards to the top
- scale text smaller at top and bigger at the bottom
- change colours during scroll with different hues
🎉 I just finished Day 93 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Learnt:
- GeometryReader vs containerRelativeFrame
- global, local and custom coordinates to position child views
- visualEffect modifier
- scroll targets and behaviour
Math is hard :/
🎉 I just finished Day 92 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Fun project:
Always wanted to understand how SwiftUI layouts & alignments work.
Learnt:
- layout hierarchy
- alignment guides/custom alignment guides
- absolute vs relative positioning
🎉 I just finished Day 91 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
- Clear text field after adding a new card
- Remove red opacity when card offsets back to zero
- Allow user to reattempt wrong answer
- Change storage: UserDefaults -> JSON Documents
🎉 I just finished Day 89 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
- Add colours to swipe & alternate UI for colour blind users
- Add timer to allow countdown to make game challenging
- pause timer when app in background
- add logic for when game ends
🎉 I just finished Day 88 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
- Created card view with pile of cards
- Used DragGesture() and offset to animate removing cards from the pile
Loving the start of this project so far, so cool.
🎉 I just finished Day 87 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Learnt:
- Using Timer with tolerance from Combine Framework to repeat code/action
- scenePhase to determine if app is in background/foreground
- accessibility env vars to change UI state
🎉 I just finished Day 86 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Learnt:
- Custom Gestures: onLongPress, magnify, rotation
- Gesture priority
- running gesture sequentially
- hit testing & content shape to interactivity & tappable area
🎉 I just finished Day 85 of the #100DaysOfSwiftUI at hackingwithswift.com/100/swi… via @twostraws
Finished Day 85 Challenge:
Add icon for contacted/uncontacted
Add UI to edit Prospect information
Add sorting by name/recent support in all tabs
Revised some SwiftData concepts here