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…
Updated example conjugation options. You can now use tildes (~), spaces, and new lines to separate possible conjugation forms and you can add an optional particle in parentheses. This will help in conjugating examples for grammatical phrases that are similar, for example: 〜た上(で) for verbs and の上(の) for nouns.
You can also conjugate examples that might have random phrases within the grammatical form such as 大して〜ない.
Added lesson markers to indicate if a study session has been completed today (green circle) or is in progress (yellow triangle) for each document on the Lesson List.
Added a complete Japanese character set; the app will now properly determine if imported text is Japanese even if it starts with a number or punctuation.
This means that you’ll now need to be more careful when importing; if you select “imiwa? Entries” when you actually have an imiwa? List on the clipboard, it will recognize the Japanese entries and import but you’ll also get some unwanted labeling.
Added the ability to search Apple’s Dictionary from the Study view popup menu and action sheet.
The first time you try this you’ll likely get “No definition found.” You’ll need to tap “Manage” and then download the Japanese dictionaries.
The next time you try it you’ll actually get some results. The two different dictionaries actually offer a fairly good amount of information for most entries:
IMPORTANT – This currently seems to be bugged and you might have to turn on the Japanese dictionaries every time you want to use the feature after relaunching the app. You won’t have to actually re-download the dictionaries; just tap to turn them on again. Setting your device’s language to Japanese might fix this problem. If this bothers you, you can submit feedback to Apple about it. The more people complain, the more likely it is to be fixed.
Added the ability to do a Google image search (explicit filter enabled) from the Study view action sheet.
Fixed sorting cards by creation date for study sessions.
Tweaked card sorting by difficulty.
Tweaked study date normalizing.
I think these are self-explanatory enough and not really so apparent to the average user but they should make things a bit better for those that use these features.
Added a slight margin to the Example view text views.
Added a check to prevent accidentally deleting translation examples if you hit done or back before inputting a Japanese entry.
If you accidentally leave the Example view before entering a Japanese entry the English entry will just get copied and still be saved.
The next update will coincide with iOS 8 and might include a new basic UI. I’m not really sure how much I’ll have time to do but I’ll have a better idea once I’m able to get into the new APIs and see how much work it will take. I’ll keep you posted on how things are going. Until next time…
imiwa? doesn’t have examples for every word. In this case, you can either try to find a real world example (you must have gotten the word from somewhere: a book, a sign, something a friend said to you, or something you thought about saying) or can you look for an example using your device’s built-in dictionary. It’s best to do this during a study session. Tap edit and then double-tap the kanji entry and choose Select All. Next tap Define (you may need to tap the right arrow first).
Apple’s dictionary will slide up and you’ll have a nice list of examples to choose from. The examples are between the「」and the word you looked up will be replaced with a —.
The only problem is that you can’t copy text from this screen. You’ll have to be able to read all the kanji in the example so you can memorize it and then manually enter it into kanji Flow on the card’s Examples screen.
Many words will also have a long list of sub-entries at the bottom of the page.