Fast chat app creation with CloudKitMagic! (en-US)

Summary

CloudKitmagic is a framework dedicated to making saving and synchronizing data on the iCloud an easier task. In this video we will build a chat app in just 40 minutes, with all basic functions for sending and receiving messages, without the need to create a layer of persistence or network on our project.

On part 1, we will create the interface of our chat using SwiftUI and local data. 
# git clone command:
git clone -b part1-chat_interface https://github.com/rvenieris/InstantMagicChat.git


And in part 2, we'll update our project so that it'll save, read, and receive notifications directly on the iCloud. 
# git clone command:
git clone -b part2-fully_functional_with_cloudkitmagic https://github.com/rvenieris/InstantMagicChat.git

Motivation

Losing the fear of programming

  • Creating a satisfactory experience with coding
  • Ricardo
  • Hello, everyone!
  • For some time I've been trying to create coding classes that are satisfactory and elucidating for people of all profiles.
  • Teaching programming and your concepts for programmers are a task, I'd say, trivial, since the profile helps the content understanding.
  • Mateus 
  • I mean, I'm in the 8th semester of computer engineering, and stuff like, changing the abstraction level for me are natural, just like patterns and coding architecture.
  • But here at Academy Rio, we live with a lot of people from other areas and I can see how difficult is to some people understand these concepts.
  • Another thing I realized, was the frustration of some colleagues who wanted to be able to express themselves with code and see results on the apps, without much success.
  • Programming isn't impossible
  • Ricardo
  • Recognizing the frustration of these students, I began to research the best transfer practices of this kind of knowledge for those without a background that support them.
  • We found SwiftUI to be an excellent opportunity. Seeing your code running in a real-time view is a game changer, it makes our ideas and concepts tangible. It's magic!

  • Mateus
  • But the world of programming don't stand only on interface building, we understand that the other end of this magic is also important - an interface without functionality is nothing but prototype, correct?
  • What if we apply concepts similar to those presented in SwiftUI to perform the data persistence layer?
  • Ricardo
  • To make feasible that approach, I created CloudKitmagic!
  • CloudKitMagic intends to smoother the introduction to remote persistence concepts.
  • With a quick initial setup, we present in a uncomplicated way some concepts like:
  • divisão da aplicação em camada de dados e de interface; 
  • application division into data and interface layer;
  • application layers communication;
  • assynchron execution.
  • Mateus
  • To show how CloudKitMagic works, we need an inspiration, a project that engages us.
  • I was recently talking to Ricardo that there was a moment when I felt challenged: when I received a feedback, guiding my group to withdraw from the proposed solution an in-app-chat. We've got enough chats, we can use one already established.
  • Pode ser verdade, mas grandes apps como Uber e iFood possuem seus próprios chats. 
  • That may be true, but great apps like Uber and iFood have their own chats.
  • I asked myself, "How costly would it really be to make a chat?" Is the discomfort of forwarding the user to a third-part solution a better option than taking on that cost?
  • I suggested the challenge. Can we make a chat app in less than an hour?