BlockPro 2.0 is the second iteration of the first application I published onto the App Store, BlockPro 1.0. Originally intended to serve as an update to 1.0, BlockPro 2.0 went through a series of design iterations until it evolved into an entirely new and rewritten application.
Designed to boost productivity and facilitate collaborative teamwork, BlockPro 2.0 is packed with important features that gives the application the ability to:
- organize your tasks for the day into “blocks”
- create collaborations with other users
- add attachments such as photos, locations, voice memos and links to both “blocks" and collaborations
- assign tasks to users in a collaboration, to monitor the progress of the collaboration and all of its tasks, and to monitor the activity of each individual member
- keep in contact with other users by sending messages, photos, and schedules to one another.
The enablement of all of the above features required somewhat of a diverse tech stack. The stack and the purpose for using each language, framework, and library involved are as follows:
Languages:
- Swift: BlockPro 2.0 was written entirely in Swift and developed almost entirely programmatically
- TypeScript: To enable push notifications upon the creation of new messages, Firebase Cloud Functions were written in TypeScript, then deployed onto Google’s servers
Frameworks:
- UIKit: BlockPro 2.0 was developed using Apple’s UIKit framework
- MapKit: MapKit was utilized to enable the configuration of MapViews that would be used to display locations searched and saved by a user
- Core Location: Core Location was utilized to determine a user’s current location. After obtaining their location, it would then be used to display an annotation onto the MapView as well as prioritize locations that were closest to them when they were searching for locations to add as an attachment
- AVFoundation: AVFoundation was utilized to record and playback voice memos recorded by a user
Libraries:
- Lottie: Utilized to display animations throughout the application from JSON files
- JTAppleCalendar: Utilized to aid in the configuration of the many calendars throughout the application
Other:
- Xcode: BlockPro 2.0 was developed using the Xcode IDE
- Cocoapods: Utilized to integrate libraries into BlockPro 2.0 to enable key functionalities like Firebase, Google Sign In, Lottie, etc.
- Cloud Firestore: Data created by a user using BlockPro 2.0 is persisted almost entirely using the Cloud Firestore database
- Cloud Storage: Images and voice memos generated by a user are saved using Cloud Storage
- Sketch: BlockPro 2.0 was designed in my head, then in Sketch (a little last minute joke for the reader lol)
Thanks for staying tuned this long! If you haven’t already, download BlockPro 2.0 on the App Store and give it a try!