Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

tomstone74

macrumors member
Original poster
Oct 26, 2021
68
53
Hello,

I've a shiny 14" M1 Pro 10/16/32G/2TB :), which I would also (beside Photo/Video editing) like to use for some native iOS / Mac development.

I have a university degree in computer science with 20 years experience in software engineering, databases and some other stuff, mainly based on Java (backend), Delphi (anybody still knows that?) relational and NoSQL (Cassandra) databases.

So, not related for my day job, but more for private interest with a concrete goal (mentioned below), I would like to get into / learn native iOS / Mac development. As I know the main concepts of software engineering, I kinda think it's mainly tool (XCode?), language (Swift?) and perhaps deployment/testing/debugging related. I don't intend to release something into the AppStore, if not needed for below goal.

The (ambitious?) goal is - until end of June 2023 - to have a simplified - but heavy "personalized" - game (thought about Tetris) running on an iPad Air, as a birthday present for my kids, thus the heavy "personalized" thingy, not something out-of-the box from the AppStore. :)

A guess there is a ton of material on XCode/Swift (in case this is the preferred combo, but I think so, right?) etc ... out there, but what I'm basically seeking is, ideally from someones personal experience, some sort of quick practical guide into the Apple development world, coming from Java/IntelliJ, thus not learning programming from scratch. Can be a book. Can be a Udemy/Pluralsight course etc.

Thanks a lot!
 

casperes1996

macrumors 604
Jan 26, 2014
7,593
5,764
Horsens, Denmark
Xcode is the primary IDE for Apple development. You may choose to use any editor, like VSCode, BBEdit, etc, but you're going to want to download Xcode no matter what. In addition to the editor, Xcode comes with a suite of utilities that provide generally useful functionality, like the iOS Simulator that will allow you to test the application on a virtual iPad on your Mac. It also lets you start from a variety of templates that ease the initialisation of projects. And comes with the generally useful Xcode Command Line tools that include lldb, compilers, etc.

Xcode also comes with a documentation viewer that has great documentation for all of Apple's frameworks in a nice format with good overview pages and information. Make heavy use of this as a starting point. It's also available on developer.apple.com if a web version is preferred.

For native deployment you can use either Swift or Objective-C. These are the "first class citizens" for Apple's frameworks like UIKit. Swift is, in my opinion, a lot nicer than Objective-C; I never really liked Objective-C.

For a simple 2D game I recommend looking into SpriteKit, which is Apple's framework for 2D games that includes systems for physics and sprite rendering. The 3D equivalent is SceneKit.

Deploying to a Mac can be done simply and easily by just exporting an application bundle. If it is not notarised by Apple people will need to right click it and hit open in the context menu on first launch but then it will just work. Deploying to iOS/iPadOS is a tiny bit more involved. You can just push your application to the device through a cable or wireless connection to the development Mac, but applications installed this way will have an expiring developer certificate associated with them meaning they will need to be regularly renewed from the deploying Mac. I believe this is monthly but I cannot remember off the top of my head. This may or may not be a significant issue to you. Paid developed accounts with Apple will allow you to upload to the App Store or push the application as an "internal business application" (forgot the proper terminology) which will not expire.
 

karlcrazyman

Suspended
Apr 21, 2023
32
7
Frisco, TX
There are a number of resources available for learning iOS and Mac development, including online tutorials, books, and courses. Here are a few options to consider:

  1. Apple Developer website: This is the official website for developers interested in creating iOS and Mac apps. It offers a range of documentation, guides, and sample code to help you get started.
  2. Udemy: Udemy offers a range of courses on iOS and Mac development, including beginner courses on Swift, the programming language used for iOS and Mac apps.
  3. Stanford University iOS Development Course: Stanford University offers a popular iOS development course on iTunes U. The course covers the basics of iOS development and is taught by Apple engineers.
  4. Ray Wenderlich: Ray Wenderlich offers a range of tutorials and courses on iOS and Mac development. They cover everything from beginner topics to more advanced techniques.
  5. Big Nerd Ranch: Big Nerd Ranch offers bootcamps and courses on iOS and Mac development, as well as books on the topic.
Whichever resource you choose, it's important to practice coding regularly and to seek out opportunities to apply what you've learned. Good luck!
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.