Fixed a loading bug for iPads running older version of iOS
A user pointed out that the update I made to the activity spinner and popover layout in the previous version didn’t work for iPads on iOS versions < 13.0. The Lessons popover wouldn’t automatically appear at the front of the z-stack (the 3D, front-to-back level of each layer) so users couldn’t select a lesson since their touches couldn’t get through the activity spinner layer.
I reverted to the older implementation to fix this issue. However, this isn’t optimal for users running iOS version >= 13.0 so I’m going to be releasing one more version with the current UI and the updated z-stack layout that no longer supports older iOS versions.
Of course, I’ll leave the current latest version available for users that have already downloaded the app on older versions.
Fixed a bug for cards marked to delete after a study session
This also actually only affected older versions of iOS or older devices. This is one of those interesting things just happens to occur occasionally due to multi-threading and based on how quickly your OS/device is capable of loading the delete cards screen view.
If it can load it quickly enough, the array will be properly filled and displayed appropriately. However, if your device is a bit too slow, the array won’t be filled by the time the view is actually displayed so what ends up in the array and what is initially displayed won’t be synced up properly.
Simply moving the code to fill the array to when the view is ready to be displayed instead of doing it when the view is loading fixed the issue.
Sorry if these bugs caused any problems for anyone and thanks again to users that reported the issues.
Please keep telling me about any problems you notice and I’ll keep getting them fixed.
I’m sorry to say that there has been a lesson load bug on iPad that may have prevented iPad from loading lessons properly since the last update. I really wanted to push out a quick bug fix release but I was halfway through updating the UI (as outlined in the previous post) and I just wasn’t able to do it until that was complete. kanji Flow on iPad should work as expected again.
Various UI fixes and updates
Updated for iOS 13 to support all screen sizes but only works on iPad in full screen mode. Multi-tasking support (slide over and split view) will be in the next update.
There’s also an unlisted change regarding the dictionary integration also described in the previous post. Basically, if you already have imiwa? installed the app will continue to function as before. If you don’t have imiwa? installed, the dictionary buttons will turn blue and will open the default Apple Dictionary instead.
It’s been quite a long while since the last release, a little over 2 years. I’ve just been terribly busy with a new job, a new wife, and a new son. I had been slowly working on a new update for that whole time but a few things kept me from getting to release. Mostly, I was trying to get the UI updated to work on all screen sizes and devices.
I originally developed the base code for this app more than 10 years ago when the iOS SDK was first released back in 2008 (the first version of this app was called JiSeki released in April 2010 as my final project for college). At that time, there was only one iPhone with one screen size so, of course, I hard coded the UI to fit that screen. Then a phone with a four-inch screen was released so I added a bit of code to detect that and stretch things out a bit if necessary. Then the iPad was released so I added a bit more code to fit that resolution in portrait and landscape.
I realized when I was adding the four-inch code that it would probably be better to just refactor the layout code to just fit whatever the device resolution was. However, at the time it was a lot easier to just leave it alone and add a few exceptions where necessary.
I think it was around 2016 at WWDC that Apple began strongly suggesting that developers should start writing or refactoring code to dynamically layout on any resolution (adaptive layouts). This was because Apple knew they were going to start releasing a wider variety of devices with a lot of different resolutions with and without home buttons in addition to iPad’s multitasking features like split view and slide over.
However, I did not take the hint at that time. It wasn’t until iPhone X was released that it was obvious I would have to rewrite my UI. So, I started slowly working on storyboards using layout constraints in iOS 12. I was about halfway done during the last WWDC when Apple announced Swift UI. That seemed a lot better and easier to use than layout constraints so I decided to scrap what I had been working on and go with a new Swift UI instead.
Unfortunately, it turns out that while Swift UI is indeed great, it’s not quite feature complete and it would be pretty difficult to replace my full UI with just Swift UI. I’m hoping they’re going to add a lot of new features for iOS 14 which we should find out about at this year’s WWDC.
But, what to do about my current UI? Apple released some guidance this year which indicated apps that didn’t support every screen size would be…actually I’m not sure. Certainly they wouldn’t accept new apps or updates like that but I think they may have also been planning to boot current apps out of the store as well if they weren’t compatible. So that meant I had to get the app’s UI up-to-date before the deadline (which was fortunately extended to the end of June 2020, perhaps due to the pandemic).
I was kind of worried about how long it would take to get all the storyboards and constraints done but it turns out I really didn’t have to do that at all. I was just able to get rid of all (well, most) of my hard coded layouts and let iOS 13 handle most of it with my current xib files via a few auto layout tweaks.
It’s not perfect (iPad only works in full screen) and I am still going to have to do a lot of work to get a fully modern, dynamic UI that supports multi-tasking on iPad OS and dark mode and dynamic fonts and on and on. But it fills the screen and finally looks good on notched iPhones and iPad Pros:
Another interesting or strange thing that prevented me from getting the update out as quickly as I wanted was some trouble with the app review process this time.
For some reason, Apple told me that I had to remove the third party app from my app. As a developer, this request didn’t make any sense to me. As far as I know, there is no way to put an app inside another. Of course, kanji Flow is integrated with imiwa? so that you can tap a button to do a dictionary search and things like that. But, imiwa? isn’t in my app. It’s just a link. When you tap it, you leave my app and imiwa? opens. So, I tried to get some clarification but they just said the same thing:
They included screenshots of my imiwa? buttons as well as the download link.
So, in the end I had to change the buttons to a generic dictionary label and, by default, those buttons open the Apple Dictionary instead of the much better imiwa? dictionary. If the dictionary buttons are blue, you know you’ll be getting the built-in dictionary which really isn’t so useful (and is actually kind of buggy and really slow to open in iOS 13; hopefully they’ll fix that in iOS 14). If you already have imiwa? installed on your device then the buttons turn red and you’ll continue to get the same functionality as before.
I guess for new users I just hope they’ll read the App Store text or visit this site to realize they can get a lot of convenient features by installing imiwa? and using that for dictionary lookups and card importing.
For the next update, I probably will be waiting until WWDC this June to see how far along Swift UI has come and hopefully I’ll be able to get the app’s UI fully modernized to work with iPad’s multitasking. I personally can’t wait until I can have the app open in side view on top of my sketching app so that I can do my study sessions with writing practice on a single device. Until then…
It is out. Please update and try it. Be sure to let me know if there are any issues; especially for iPad users. I’m keenly interested in knowing if performance is okay on retina iPads; that’s the only device that I wasn’t able to test on myself.
I also got a new App Store review recently. Thanks Mugen89k. You mentioned that the cards aren’t shuffled and appear in the order you added them. Actually, only new cards are presented in order. Tested cards are shuffled by default but there’s a setting that allows you to have them sorted by creation date if you so desire. I never thought that someone might also want new cards to be randomized. I’ll add an option for that and release an update as soon as possible. Expect it by next week, perhaps. Just for you Mugen89k.
That’s right. If you want something in the app, all you have to do is ask and I’ll probably add it for you. As long as it’s sensible. New card shuffling, yes. Unicorns…probably not.
I finally finished the update. Hopefully it will be reviewed quickly and available soon.
I think it turned out pretty well. This version is iOS 7 only but the old version will continue to be available in the store for those with older devices. The main new features are native iPad support and updated support for imiwa?`s newest feature – analyzing a long string of Japanese text. You’ll need to use the long-press popup context menu to access the analyze feature.
I had to spend way more time than I thought I would tweaking orientation support on the iPad. So much time, in fact, that I wasn’t able to properly test my iCloud implementation. So, I had to keep it turned off for this release. For the time being, you’ll have to manually manage your files through the App tab in iTunes if you have multiple devices. I know it’s a pain and I’ll try to get the next version with iCloud support out as soon as possible. Maybe by Christmas?
After that, I intend to start working on being able to import and export directly to and from Anki files. And sometime next year, hopefully by the spring, I’m going to open up online lesson sharing to you guys. You’ll be able to download lessons without a user account. Those that do create accounts will be able to upload, rate, and tag lessons. No comments but the tagging system will work similarly to something like Little Planet. You’ll be able to choose three tags (words like technology, textbook, grammar, verbs, explicit, stupid, etc.) to describe a lesson so I think it’ll be easy to find the good stuff. It’ll all be searchable as well.
Anywho, as soon as Apple approves the app I’ll post another update to let you know it’s available for download.
I wanted to post an update on what I’ve been doing recently.
I’m hard at work on the update to a universal app which will include retina iPad support. As I’m sure many of you know, Apple revealed iOS 7 at this year’s WWDC. I plan to release the universal app in conjunction with the release of iOS 7. I’ll be updating the app to version 2.0 and the UI will conform to Apple’s newest design principles. I know a lot of people don’t like the new design. I didn’t either, at first. However, after using it for a few weeks, I can assure you that the OS itself is much better and the new, “flat” design grows on you. I have a couple of preview shots to show you how things are coming along.
Please keep in mind that these are work-in-progress so they’ll almost certainly change at least a bit.
Version 2.0 will only support iOS 7 so you’ll have to upgrade to the new OS before you’ll be able to update the app. I’m going to be releasing the final version of 1.1 soon which will act as a preparatory bridge to version 2.0. The update (ver 1.1.3) will require iOS 6.
I’m going to complete the new iPhone version first because that’s what I’ll be using for daily testing. As soon as that’s done, I’ll start working on the iPad UI and will release some preview shots as soon as possible.
Please don’t hesitate to let me know what you think of the design and what kind of new features you might like to see in the new version.
Version 1.1.2 is available now. Actually, this update was mostly just for me. I cleaned up a lot of the code and tweaked how the font cache is managed a bit. However, I did want to add something that users would actually notice so I put in an option to automatically synchronize your card study dates when you tap the Study tab. You’ll have the option to turn this on or off the first time you launch the new version and you can change it later in the Settings app.
I guess I’m gonna start working on artwork for an iPad native retina version. It’ll probably take a while to finish up but hopefully I’ll have it done sometime this summer. Please let me know if you’d like to see any changes or additions to the app during the meantime.