I have finally come to the end of my mobile app, Infinity, which has been a great learning experience in Swift, SwiftUI as well as getting my hands dirty with Git. Overall, it has been an excellent journey and developing on my iPad has been great fun for the most part!
However, the last 30-45% of my app was imported and developed all in Xcode because Swift Playgrounds was limited when it came to adding more functionality to my mobile app.
I was ready to cut some features out just for the sake of publishing directly from iPad however, it quickly became apparent to me that Swift Playgrounds is only really good for basic apps or prototyping (i.e. start messing around with Swift Playgrounds and then move on to Xcode).
That being said, this isn’t a bad thing per-se. I will share my plans for Swift Playgrounds shortly and what I believe it is good for in it’s current state with iPadOS 16.
So you might be wondering, if Xcode can do everything and do it well, why not just start with Xcode?
The use case for Swift Playgrounds
Well, for someone like me who has a Mac Mini at home and iPad Air for on the go computing paired with a Logitech Folio Touch, it’s basically like a mini MacBook! For me, it does everything I need it to do however, I really hoped that I could use Swift Playgrounds for more complex applications and I will share my wish list on what I would want the app to do.
The real reason why I had to switch away from Swift Playgrounds because I couldn’t implement the following:
- Test IAPs (i.e. proper StoreKit files (library works)
- A proper build/asset manager (e.g. making custom app icons possible)
- Version control (this, I can live without as I was using Working Copy as a workaround).
- WidgetKit development
- Apple Watch development (ok, this is asking too much but it would be cool 😃)
The first two are the most important and I think if we had support for that implement, it would be honestly perfection. For version control (i.e. git), I was using Working Copy + Textastic to import my code into my Github repo but it was very manual and involved a lot of copy-pasting. Having proper git support would be perfection.
I guess what I am asking for is Xcode on iPad which would be nice but perhaps are more watered down version (i.e. one that nails down the absolute basics enough for new and professional programmers). I’m not asking for CI/DI but let’s say, Swift Playgrounds Pro.
What can I use Swift Playgrounds For?
Well, you can use it for testing, quickly prototyping a new app or even just creating basic free apps which you want to deploy to the App Store. I might actually create a fully-free app that can be developed in Swift Playgrounds (e.g. something based off my Infinity App) as the Infinity App itself was made mostly with Swift Playgrounds.
The iPad does just about everything for me so I won’t call it quits just yet as iPadOS only really started to get good in the past few major updates (since iPadOS 14?). There are rumours that iPadOS 17 will bring even more goodies to the iPad so I am hopeful that in June’s WWDC event, we will see some improvements to the Swift Playgrounds app. This would be absolutely epic if that’s the case! 😃
My app in Swift Playgrounds
Having completed about the last third in Xcode, I then reimported all of the code into Swift Playgrounds and it still worked just fine. The only issue was StoreKit not working properly which is to be expected. There is also an issue with setting up a custom app icon. Again, this isn’t a crucial feature for most apps but thought I’d mention it.
To give where it’s due, I am very happy with Swift Playgrounds thus far. Like come on, who would have thought an iPad could develop apps? Like sure, it isn’t Xcode but it doesn’t mean you can’t do anything with it. I think it excels in creating basic prototypes and if you are just developing apps that are free and for fun and not doing anything too serious, Playgrounds it’s perfect for that!
I’m thinking of creating another project and publish a totally free app that is built purely with Swift Playgrounds. I’ll probably write up another article about that soon!
Let me know what your thoughts are below!
I hope for the day where I can completely replace my Mac with iPad because in my eyes, the iPad is the peak computing device.