-. Second personal app development project.
-. One-person production, released on App Store.
-. A simple reminder & ToDo application to focus on the first three things for today.
*Following contents are aimed for coders and developers, if you are not interested in those topics, please check more information on Web Page for Just Three - To Do or App Store for Just Three - To Do. Thanks! :)
- JustThree is a simple reminder & ToDo app built for people who are overwhelmed by too many Todos and reminders for their every day life, want to get out of the todo hell, and just focus on the essential.
- JustThree is aimed to let the user focus on their essential by displaying just three items on the main view, as simple as possible with satisfying animation.
- JustThree stores user's reminder or todo data only in user's device, using
UserDefaults
with coded saving key. - With the goal of experiencing whole process from the start of the project to the launch, not only development, but also planning and design were carried out directly.
- Develop with
UIKit
usingProgrammatic
way, in MVC pattern.
Captions for screenshots
- List view - Today section
The main view of Just Three.
In Today section, the list view display just three items.
Letting user to focus on their top three objective for today.
- List view - Dark Mode
Just Three supports the Dark Mode.
With satisfying wave animation interact with ToDo items.
- ToDo or Reminder view - View mode
The item consist of the title, date, time, and note.
- ToDo or Reminder view - Edit mode
The title of itme is editable with text field.
The date and time of item is editable with date picker.
The note of item is editable with text view.
- Add new ToDo or Reminder item
Easy to add new item by tapping on the plus button on top-right of list view.
Present adding view modally, but similiar user interface with edit mode.
- List view - All section
Other sections than Today, like Future and All, do not limit the number of displaying items.
- Simple interface with three types of view-controllers, built with UIKit, programmatically.
- Adopt the List Collection View using Diffable Data Source, Compositional Layout, and List Cell View Configuration.
- Satisfying wave animation built with
CABasicAnimation
andCAShapeLayer
. - Save user's data in
UserDefaults
. - Support the accessiblity features for the iOS's VoiceOver.
- Support for Dark Mode.
.
├── JustThree.xcodeproj
├── JustThree
│ ├── Assets.xcassets
│ │ ├── AccentColor.colorset
│ │ ├── AppIcon.appiconset
│ │ └── icon.imageset
│ ├── Models
│ ├── ContentViews
│ ├── ViewController
│ │ ├── ReminderListViewController
│ │ ├── ReminderViewController
│ │ └── SettingListViewController
│ └── Base.lproj
└── docs
├── assets
│ ├── css
│ ├── js
│ ├── sass
│ └── webfonts
└── images
└── screenshots
- Plan to update continuously.
- latest update: v1.0.0
- v1.0.0: Release on App Store, 6 October 2022.
- start: Initial commit, 23 September 2022.
- Period: 18 September 2022 - 6 October 2022 (17 days)
- Time Taken: 50 hours (Design + Development + Release)
-
Planning
- How to decide minimum requirements for app.
- How to build and optimize the time table.
- How to meet the deadline for progress.
-
Design
- How to make AppIcon.
- How to choose a color palette.
- How to design an app.
-
Development
- How to build UI with
UIKit
usingProgrammatic
method. - Better understanding of
MVC
pattern and how to implement it. - Better understanding of
extentions
in project module. - Better understanding of
Data Source
and how to useDiffable Data Source
in iOS project. - Better understanding of
UIView configuration
and how to implement it. - Better understanding of
UICollectionView
withUICollectionViewCompositionalLayout
. - Better understanding of
accessibility
APIs that iOS support. - How to use
CAShapeLayer
andCABasicAnimation
to make animations. - How to reduce CPU usage of the application and enhance the performance.
- How to save and load data and store user data in
UserDefaults
. - How to find the memeory leaks in Xcode project.
- How to build UI with
- etc.
[weak self]
is essential to prevent the memory leak in app, keep in mind and understand.- Still, selecting the color is way much stressfull than I expected.
- Being a regular user of the app has a big impact on the motivation for developing the app.
- keep on refactoring
- add UIGestureRecognition support for edit mode.
- add documentation
- support widget for iOS
- better support for iPad
- add unit test
- add ui test
- add sound effect
- add visual effect
- add more setting options
- build with swiftui
The MIT License (MIT)
Copyright (c) 2022 Sanghun Park
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.