AppForce1 Podcast: news and information for iOS app developers
Attached

AppForce1 Podcast: news and information for iOS app developers

Jeroen Leenarts

  • 226 Episodes
  • English
  • Last updated Jan 20, 2022
Become a member
Member feed access

Gain access to my member episodes.

Become a supporter
Coffee

Even a small amount will show your appreciation. If we ever meet in person I will return the favor.

I will thank you in my next episode.

Donate
Make a 1-time donation
If recurring donations is not your thing. You can also send me a single donation.
« Back to episodes

Twitter Space on Storage options on iOS

Apr 04, 2022 00:46:23

Send us a text

This Twitter Space Stefan and I share some thoughts on what options you have in storing data on a device and in the cloud on/from iOS.

1. What is the goal of this space?

We won’t give you exact recommendations, storage is highly dependent on maaaany factors!

  • Type of data to be stored (e.g. Booleans, Strings, Images, Large objects)
  • Volume of data to be stored (e.g. settings options, notes app that saves users notes, offline backup for social network data)
  • Needs to work offline?
  • Sensitive data (encryption, data privacy, GDPR)
  • Backed up?

2. What local options are there?

  • UserDefaults
    • Most basic option for small settings data (recommended use from Apple)
    • Optimised for UIKit + SwiftUI
    • Only locally available
  • Simple local file (e.g. Text, JSON)
    • More freedom to use a structure you want
    • More risks because you have to handle all by yourself
  • Local database (e.g. SQLite)
    • provides more powerful options for querying, etc.
    • there are wrappers around it / libraries for easier usage
    • you have to know what you’re doing
  • CoreData
    • most powerful local option
    • can have a steep learning curve
    • gives you a lot of power and flexibility

3. What online options are there?

  • CloudKit
    • Apple’s cross-platform solution
      • can but does not have to be used with CoreData
    • Stefan: planning to use it for a side-project but haven’t used it before
    • great to sync data between user’s devices: iOS/tvOS/iPadOS/macOS/watchOS
    • limitation: only Apple ecosystem
    • mixing reports: some people had syncing issues some didn’t
  • Firebase / Realm / AWS Amplify / Azure probably has a solution as well
    • necessary for apps with collaborative features (or maybe as a convenience for account-functionality)
    • platform-agnostic
      • share data between iOS/Android/Windows/Mac/Web
    • be aware of something called “vendor lock-in”
    • pricing is something to keep track of
      • there are horrible stories of people having incredibly high bills because of loops/bugs they had in their code
    • you give up control for convenience
      • not a bad thing but important to keep in mind
  • Self-hosted via AWS / Google Cloud / Azure / Supabase / Roll your own solution

4. Some recommendations

  • Start small and work your way up
  • There are a lot of options out there, so not easy to find the correct one, but what helps is:
    • Think about the type of data you w

Stream makes it easy for you to seamlessly integrate real-time experiences into your application. Check out their Swift tutorial to learn how you can get started adding video or in-app messaging to your apps!

Lead Software Developer 
Learn best practices for being a great lead software developer.

Support the show

Rate me on Apple Podcasts.

Send feedback on SpeakPipe
Or contact me on Mastodon: https://hachyderm.io/@appforce1

Support my podcast with a monthly subscription, it really helps.

My book: Being a Lead Software Developer

Image
Title