Seems like the big release from yesterday went well with some exceptions that thought me to be more attentive to extreme cases.
iOS has one particular thing where it closes the application if the startup takes more than 20 seconds. 20 seconds is obviously a lot but when updating the application one of these two thing happen:
- The database doesn’t change. This case is straight forward. The app starts really fast.
- The database has changed because I implemented a new feature that requires a change in the database. In order to bring these changes to the user’s database on the phone, iOS deletes the existing tables, recreates the tables and inserts the data back in the tables. For most users, with regular sized libraries, this takes a few seconds which is well bellow the 20 seconds threshold. One of the users who participated in the beta program has a huge library (950.000 tracks on 2 MinimServers).
I run the math. The migration takes about 3 minutes for 500.000 tracks. As you can imagine, the application gets booted by iOS on startup.
So, in order to fix this I had to implement a new screen which you will see every time you install a new version. It runs once per install and it will handle the migration in a way that iOS doesn’t kill the app. The update that contains this fix is at Apple for review.
Now, with that out of the way, I think I need a vacation because I’ve been working non stop for the last 7 months.
Lorin.
