I have been programming for more than a decade. During my professional career, I have had roles in customer support, tools development, full stack web development, database schema design, Unix system administration, system integration testing, feature interaction testing, test automation. For the last one year, I've immersed myself in self-learning the iOS Development. Recently I just finished iOS development online boot camp from Career Foundry and had two apps in Apple App Store.
ResumeThe final project for CF iOS Development is a To Do App. As someone who has been in software industry for a significant time, initially, I tried to make it a grand project with a lot of nice features. But after consulting with the mentor, we decide to start with minimum requirement and improve upon it. One particular feature that I want to highlight is the synchronization of data among multiple iOS devices. We have several options to choose from, using only Apple technologies or a mix of Apple technology and another vendor like Google Firebase. As I investigate the pros and cons, I think it is always better to stick with only Apple technologies like Core Data and CloudKit. Using Firebase might simplify the solution in the short term, but in the long run, once the customer base grew, we’ll end up paying a lot or have to migrate to a custom solution. On the other hand, the Core Data and CloudKit integration are complicated and not much help could be found on the Internet. But I decided to take the challenge. The adventure with the CoreData and CloudKit is much more complicated than what I initially plan for. First with my shallow understanding, I tried to start coding and brute-force my way out, but I just wasted quite significant project time on it. But on the positive side that makes me understood the complexity better. After reading multiple times from Apple document and simple example, and another blog with some drawback, I finally able to create quite a robust solution for the integration of Core Data and Cloud Kit. By meticulously following Apple documentation and sample code, supplement with other online source and with my ingenuity I was able to create a framework of the core data and cloud kit integration for small to medium size iOS project. I presented the CoreData and CloudKit integration at CocoaCoder local Meetup.