A highly customizable, programmatic (no Storyboard), dark-themed note-taking app built with Swift and UIKit.
- Programmatic UI: Built entirely without Storyboards/XIBs.
- Dark Mode: Deep dark theme with vibrant accents.
- Persistence: Notes are saved to the device's document directory (JSON).
- Search & Filter: Real-time search and favorites filtering.
- Animations: Custom micro-animations for interactions.
- Editing: Custom inputs for title and date tracking.
Since this project was generated file-by-file, you need to create an Xcode project to run it.
- Open Xcode and create a New Project.
- Select iOS > App.
- Product Name:
DarkNote(or whatever you prefer). - Interface: Select Storyboard (don't worry, we'll remove it).
- Language: Swift.
- Create the project in a known location (e.g., Desktop).
- Delete the default
ViewController.swiftandSceneDelegate.swift,AppDelegate.swiftfrom the new Xcode project. - Move the
Sourcesfolder from this generated project into your Xcode project folder on disk. - Drag and Drop the
Sourcesfolder into the Xcode Project Navigator. Make sure "Copy items if needed" is unchecked (since they are already there) and "Create groups" is selected. Check your target.
- Info.plist:
- If Xcode generated an
Info.plist, you can leave it. - If not, or if you want to be sure, you can look at the simplified
Info.plistprovided in this package. - Crucial Step: To enable programmatic UI, open your target settings -> General -> Deployment Info. Make sure "Main Interface" is empty (delete "Main").
- If Xcode generated an
- Scene Manifest:
- Ensure your
Info.plist(or Target -> Info -> Custom iOS Target Properties) ->Application Scene Manifest->Scene Configuration->Application Session Role->Item 0->Scene Delegate Class Namematches$(PRODUCT_MODULE_NAME).SceneDelegate.
- Ensure your
- Select your simulator or device.
- Hit Run (Cmd+R).
Sources/Application: AppDelegate & SceneDelegate.Sources/Controllers: ViewControllers (List, Detail).Sources/Models: Note data model.Sources/Managers: Persistence logic (NoteManager).Sources/Views: Custom UI components (NoteCell).Sources/Utils: Theme and Extensions.