February 1, 2023

Today marks the 1 year anniversary 🎉 of quitting my job to join Riley and work on AltStore. I have learned a lot, but still have even more I'm taking in. Here's to getting even better this year :)

AltStore 1.6 Launches with a New Debugging Tool

We finally released AltStore 1.6 this week, marking the end of a series of beta releases focused primarily on changing how AltStore responds to errors. It's certainly not glamourous, but something we think will pay off dividends going forward given the amount of unknown variables that come with trying to install apps by circumventing Apple's software. As of now, our current solution requires users to install a companion application, AltServer, on their computer that then needs to communicate with their iPhone or iPad to download AltStore. AltServer also needs to communicate with their device to install new apps, enable functionalities, and 'refresh' their apps every 7 days. Not to mention it's on Mac and PC, so that's three total applications we have interacting with each other. This is made even more interesting when we have no real oversight over where people are getting their .ipa files aside from the apps made by a few developers we work more closely with. This is all just to say that there are limitations to sideloading and people are going to run into unexpected issues. I do hop around to offer support, but questions are scattered around on Twitter, Reddit, Github, Discord... it only does so much good. People are still asking me how to turn on Developer Mode. That's why I am happy we have focused on building a way for people to better help themselves by adding a new debugging tool. 

We built an Error Log for AltStore with the idea that we wanted to get much better information from our errors and also give users better solutions to solve their problems:

2. The Error Log lists errors along with a quick possible solution for users to try before seeking more help.

3. Users can then view full error information, including underlying errors, making sure nothing is lost.

2. Error Codes are now documented and categorized in our FAQ to provide more help.

This new approach to errors will help us in the long run as we expand and more apps are distributed through AltStore. There is hope that some of the limitations of sideloading are removed and everything gets easier, but this will help in the meantime.

Being Open-Source

Twitter's turbulence has now turned into an opportunity for FOSS to shine with Mastodon taking the spotlight as the most interesting thing happening with the actual technology of social media. Mastodon feels refreshing with different instances of the experience that are independently run by those using the product. Because of that, Mastodon has brought an open-source wave to Patreon so big that they got their own category on Graphtreon, a site that lists 40% Adult content categories in the top navigation (there is still no category for 'Technology' and AltStore is currently #22 under 'Games'). New Mastodon servers continue to pop-up and are following in line with Mastodon itself, creating Patreon projects to support server costs and management. With AltStore also being an open-source project funded on Patreon, we are excited and watching closely how things with Mastodon are progressing. AltStore recently joined the Fosstodon server, which not only ranks third in the 'Mastodon' category but is also a server dedicated to other open-source projects. I hope to soon see some of those projects on AltStore. 

Additionally from this, we are taking a look at how we can improve as an open-source platform. AltStore's categorization and use as an open-source project has mainly been about transparency and working in the open. We currently require that users enter their Apple ID information in order to use AltStore, and so being open-source is a good way for us to show that user data is never collected and used for any other purposes. Although we operate outside of Apple's iOS walls, everything is on the up and up. We have therefore also taken a very measured approach with releases, doing lots of personal testing and verification before ever telling people to download anything themselves. We feel a responsibility to protect users from harming themselves, and so any code that gets committed is something we are confident in. 

We also come from the small indie iOS app mentality of creating complete, polished, and curated experiences. However, by being open-source, we are also part of community that wants to contribute code and build features fast. To use a Mastodon analogy, we are somewhere between Ivory and Ice Cubes, building a thoughtfully designed app that happens to be open-source. That all being said, we want to improve on the open-source part and open up development for those who wants to contribute. We want to start making better use of the tools that hosting a project on GitHub affords us, something the AltStore community has been asking for us to do. Currently the 'Issues' tab for the AltStore repository is littered with an abundance of general support questions, and we don't have guidelines for submitting pull-requests. So to start, I have been going through the long list of GitHub Issues and marking posts so that everything is categorized between support and actual bug fixes/feature requests moving forward. The next phase now will be to move the AltStore repository from Riley's personal repo into a GitHub Organization that has already been started by some of the community members. From there, a process for reviewing and accepting pull-requests is next, so I hope to have more to update on that next time.

Bonus Footage

I made the graphic for the AltStore 1.6 Release this week! I'm getting better at being a Keynote artist, though I have been told I should use better tools. For now though, Keynote is the canvas so long as I can grab assets from an old Sketch file and modify them. We also saw a question as to where the T-Rex wallpaper is from, and luckily I have a good answer for that. That is in fact my personal phone wallpaper, and I found it from a new favorite artist of mine - @simonbailly.