DEV Community

Discussion on: Explain iOS development like I'm five

Collapse
 
stevewight profile image
Steve

I've done a good amount of iOS (Swift/Objective-C) development, so I'll give my experience on some of this:

What is AppDelegate's role?

The AppDelegate delegates events from the system to your app like launch, going to the background, etc.. Delegation is an important concept in iOS dev and is used a bunch throughout the system (i.e. UITableViewDelegate. UICollectionViewDelegate) and leverages Protocols to allow objects to communicate with each other.

Where would I put my models?

I structure my iOS apps similar to Rails app/ (with less starting directories) using an MVC pattern. So I'll start with a Models, Controllers and Views directories, then add other folders/groups like Services, Presenters/ViewModels, etc.. as necessary. There are some other app architectures like MVVM, Viper that are gaining popularity, but iOS and the underlying API's have been built following MVC.

Is it more of a "one right way" or a "many right ways" culture?

This is an interesting question I haven't really thought about before. I would say it's more of a "one right way" culture. Apple normally hint's (sometimes subtle, sometimes not) about how they wan't things done in there WWDC presentations

Is Swift "culture" different from Obj C in any meaningful way?

I don't know if it would be considered a cultural difference but Objective-C is a very object oriented language, while Swift is a protocol-oriented programming language and although you can solve any thing in Swift in an object-oriented way, there seems to be a strong push to solve things using Swift's protocol oriented features.