UPGRADE YOUR SKILLS: Learn advanced Swift and SwiftUI on Hacking with Swift+! >>

Is SwiftUI right for me?

Forums > 100 Days of SwiftUI

I am a composer and my only real exposure to coding was learning a couple of soft-coding devices from Monome called Teletype and Norns. So I'm at least comfortable with varibles, if statements, logic, etc...

I want to create an iOS app with primary functions being user/subscription management and an audio player with filtering, favorites, and playlists.

I would like to do this myself for a variety of reasons. I've settled on SwiftUI as probably the best way for me to proceed. I have been going through Swiftful Thinkings Basics playlist (halfway through), but just discovered the 100 days SwiftUI course and I think this might be a good path for me. I'm not ultimately looking for a job, just to gain the proficiency to get my described app off the ground and then the ability to adjust, grow, and add features over time.

Any opinions on whether I should dive in with the 100 days SwiftUI?? Thanks! Bryan

2      

Sure, go for it. You are in a very good condition. You have a clear goal and use case which you want to achieve. This is more than many of the people who want to learn programming. Although, it won't be easy to accomplish you will see on your way how the many small parts can build your app. And if you ever have a problem you can ask here as well.

3      

Thanks @hatsushira Yes, I have already learned that this is going to be super challenging, but I'm up for it!

Glad I found this resource.

Cheers.

2      

Hmm. If possible, experiment with SwiftUI on a small project or prototype to get a feel for its features and see if it aligns with your development preferences and requirements.

3      

@dudadius asks:

Any opinions on whether I should dive in with the 100 days SwiftUI??

Emmy nominated Bryan Rheude? That one!?

If you can knock out Variation #27 on a Schimmel, I think you can Handel (<- !!!) SwiftUI. Hold on, I'll be Bach with more. I am making a Listz.

You outline a few basic use cases:

I want to create an iOS app with primary functions being

  • user subscription
  • user management
  • an audio player
  • filtering {compositions lists},
  • {marking} favorite {compositions}, and
  • {managing} playlists {from composition library}

So let's take a look from easiest to hardest:

Managing Composition Library

The 100 Days of SwiftUI has several projects where you define a structure to hold data. These lessons cover all CRUD (create, read, update, delete) activities. You have to figure out what you want to store, then follow the recipes provided.

For example, your Composition data may need a composer, title, length, year composed, and digital data (i.e. the sound file). You may create another data structure for Playlists that hold references to Composition objects. These are called many-to-many relationships because ONE Composition may be found in MANY Playlists. Also one Playlist may contain MANY Compositions. This course covers these parent-child relationships and how to navigate between them.

Marking favourites

This course will teach you how to collect that data via keyboard, or JSON files. You'll load them into scrollable, searchable lists and enable fun interface elements such as favorite stars, or number of times played. You're the composer, you decide what notes go on the page stave.

Filtering

You may envision an application with all 30 Goldberg variations, and then dozens of variations of those using Moogs, Jupiter 8s and other devices. You may have 100s of compositions in your app. The 100 Days of SwiftUI has exercises to implement iOS style search bars allowing you to efficiently search Composition objects and reduce your list to those matching your criteria.

Audio Player

While there are no lessons with the audio player, this is a core iOS technology. You'll work with other iOS technologies and will learn how to read Apple's developer documentation. For example, a few lessons dive into MapKit. You have to provide MapKit with coordinates and boundaries. Plus you can add flags and other points of interest. Then MapKit will do the heavy lifting and draw the map for your in your application.

Likewise, you'll have to learn the bits that AVKit require---a sound file, for example. Then iOS will control playback, rewind, fast foward, etc. Fortunately there are several other websites that can help you with this. I think awhile back another 100 Days student was asking questions in this forum about audio player. So, you see, you have company. (an accompianist?)

User Management

I am not sure about this requirement. Each person's iPhone may grant you access to some user information found in the Contacts application. First name, lastname, etc. Perhaps this is in reference to subscription management?

Subscription Management

I suspect the requirement here has something to do with selling compositions from your portfolio per a subscription service. This is an advanced topic and is not covered in the 100 Days course. However, like MapKit and AVKit, Apple provides store functionality via StoreKit to help you with subscriptions.

One vendor, RevenueCat, was a longtime sponsor of the 100 Days of SwiftUI web site. Their product wraps StoreKit with additional functions and easily integrates into an app you're developing and their code provides various levels of subscriptions, periodic messages to users, payments, discount codes, opt-in email, and more.

Keep Coding

Just as a new musician starts with scales and simple etudes, this course starts simple and each lesson builds on previous knowledge. I recommend you start with Day 1 and ask questions in this forum if you get stuck. Sometimes the key changes can be confusing.

Good luck! Keep us posted on your opus application journey.

See -> StoreKit
See -> MapKit
See -> AVKit

2      

@obelix I guess I'm busted!

Wow, thank you for the amazing response and information. Really appreciate it. Yes, I quickly discovered that there is a long wind-up; mastering details and functions that might seem irrelevant but are clearly part of the building blocks you'll need to piece the whole thing together. I forgot that I also had learned Max previously and that is a similar situation where you have to essentially learn a new language. It's fun!

Thanks again and I'm sure you'll be hearing from me with questions!

2      

BUILD THE ULTIMATE PORTFOLIO APP Most Swift tutorials help you solve one specific problem, but in my Ultimate Portfolio App series I show you how to get all the best practices into a single app: architecture, testing, performance, accessibility, localization, project organization, and so much more, all while building a SwiftUI app that works on iOS, macOS and watchOS.

Get it on Hacking with Swift+

Sponsor Hacking with Swift and reach the world's largest Swift community!

Reply to this topic…

You need to create an account or log in to reply.

All interactions here are governed by our code of conduct.

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.