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:58

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

Runway
Put your mobile releases on autopilot and keep the whole team in sync throughout. More info on runway.team

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