iComics – Tim Oliver https://timoliver.blog Fri, 06 May 2022 08:08:08 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.2 5272524 iComics 2, work, and the future of this blog https://timoliver.blog/2022/05/06/icomics-2-work-and-the-future-of-this-blog/ https://timoliver.blog/2022/05/06/icomics-2-work-and-the-future-of-this-blog/#respond Fri, 06 May 2022 07:54:47 +0000 https://timoliver.blog/?p=2693 I hope everyone’s been having a great 2022 so far. This week was Golden Week in Japan, and I personally had a fantastic, relaxing week of doing some long overdue cleaning, catching up on emails and hanging with friends.

I figured I’d do a super quick update on what I’ve been up to lately, and what I’m hoping to do this year.

Work

I haven’t mentioned it here yet, but I officially joined Instagram in February! 🎉 I’m working in a small team called IG Labs that is based out of the Meta office in Tokyo, building experimental new features for the Instagram iOS app. So far I’ve been having an absolutely fantistic time at the company. The company has done a fantastic job at writing code for the app frictionless, and the company culture is amazing. I spent a large part of 2021 preparing for the interviews, and when I have a bit more free time, I’ll talk about my journey to Instagram in another blog post. But in any case, I feel really fortunate to have started such an amazing new opportunity. And I’m hoping with this new work-life balance, I’ll be able to focus more time on my own projects as well.

iComics 2

So. Yeah. iComics 2 progress has been pretty slow. The reason for this is that I’ve come up against an engineering challenge that made me stuck pretty badly. I’ve been R&Ding a solution to this problem since 2020, and I THINK I’ve nearly solved the problem. 😁

To quickly sum up the problem. The resolution of comic pages has steadily been growing over the years. When I first started iComics 1, most comic book pages had resoltutions of 1,000×1,500, which was really manageable. Nowadays, most comics are at least 3,000×4,500, and I’ve even seen some comics on Humble Bundle go as high as 9,000×14,000!

At the moment, iComics 1 just uses the regular iOS graphics system to extract the page from the ZIP file, and display it on screen with zero processing. Since iOS itself is built on top a 3D graphics engine, just like in video games, when super large images are shrunk to fit the screen of smaller devices (like an iPod touch), they start to look really “shimmery”.

Here’s an example of what a large image looks when shrunk down.

Now, the obvious solution to solve this would be to make a copy of the image and shrink it down to the same size as an iPod screen. However, if the user wanted to pinch in at all from that size, the image will be super blurry. To solve this, I’d need extra copies of the image at bigger sizes I could snap to as the user pinches.

And it turns out this was totally a solved problem in 3D video games all this time. I’d somehow arrived at the concept of mipmapping in a very roundabout way. 🤣

Unfortunately, UIKit, iOS’s main graphics API doesn’t support mipmapping to this level of control. And so after several months of research, I built a proof-of-concept of a mipmapped texture that solved the problem directly on top of Metal, Apple’s lowlevel graphics API.

Here’s how it’s looking now. 😁

This is still a WIP however, and I’m still not 100% convinced this will do the job. But if I can successfully get this running in iComics 2, that will be the biggest hurdle I need to clear before launching it. Either way, I’m really excited about it.

iComics 1

For the record, I stand with Ukraine. Earlier in the year, I pulled iComics from the Russian App Store, and I donated about $500USD to the Ukraine. If you have any money to spare, I would encourage you to do the same.

I really want to do one more big push on iComics 1 and deliver a pile of the features I’ve promised as a final “hoorah” before committing fully to iComics 2. I’ve got dual page spread working in the app already, however, I wasn’t able to get my mipmapping solution I mentioned above working in such an old codebase.

Thankfully, for iComics 1, since it won’t need Mac support, I think I can create a modified version of the mipmapping system that will do the job “good enough” for dual page spread’s needs, and saving the ultra good stuff for iComics 2.

I’ll continue to stream working on iComics 1 code on Twitch. Please feel free to follow me and come say hi over at http://twitch.tv/timXD!

This Blog

I’ve been thinking about this lately. This blog is coming up on 10 years with its current appearence and I’m starting to think it’s time for a change. A big reason why I don’t blog a lot is because of the amount of “friction” I have when writing posts. I always have to Photoshop some kind of banner image, and WordPress, while great, can be quite slow to run at times. And since I’m running a self-hosted instance of WordPress, there is a fair bit of maintenance overhead, constantly installing security updates, and verifying all my plugins are still working.

Since I’m really only serving static content on this blog, I’m considering migrating the whole lot to Jekyll. I’ll try and keep all of the current content and functionality (Including comments via Disqus!), so please stay tuned for that.

And on that note, have a fantastic May!

]]>
https://timoliver.blog/2022/05/06/icomics-2-work-and-the-future-of-this-blog/feed/ 0 2693
iComics Developer Update (August 2021) https://timoliver.blog/2021/08/14/icomics-developer-update-august-2021/ https://timoliver.blog/2021/08/14/icomics-developer-update-august-2021/#respond Fri, 13 Aug 2021 17:03:14 +0000 https://timoliver.blog/?p=2421 Hey everyone! I hope you’ve been well and staying safe!

In case you missed it, today is Free Comic Book Day! Yayyy! As has been tradition for a while, iComics is free for today. If you’ve been on the fence about it for a while, go grab it now! Don’t feel bad for getting it for free, but if you end up liking it, please give it a review on the App Store!

If you need some places to get some comic books to read for it, at the moment I can recommend:

If you know anymore good places for DRM-free comics, please let me know in the comments!

And while I’m at it, let me do a brief developer update as well.

iComics (The OG one)

Earlier this year, I replaced iComics’ archive file reader (The thingy that can open up ZIPs/RARs/7ZIPs to get at the page image files) to the latest version provided by the folks at MacPaw. This included support for much needed newer formats like RAR5, but sadly introduced some other issues into the app. Thanks to the folks who reported those; I’ve fixed some of them and shipped a release, but I’m aware there’s still some lingering issues.

As usual, with everything going on at the moment, I can’t spare the time to fix these issues just yet, but I’ll try and get to them as soon as I can. The biggest issue I can see is if you import a solid archive, that seems to behave strangely, so I’d recommend just avoiding those for now.

In any case, I hope you enjoy the latest update, and please let me know if you find any other bugs.

iComics 2

As I announced at the very start of 2020, before all of the craziness started, I’m working on a ground-up rewrite of iComics, tentatively called iComics 2.

The reasoning why this isn’t simply a new version on top of OG iComics is for a few reasons:

  • iComics 1 is written in Objective-C, whereas iComics 2 is written in Swift, which is faster to write and is able to guarantee less crashes.
  • iComics 1 was written during the time of the OG iPad, and so at a foundational level, it’s not capable of scaling to the capabilities of iOS devices today. Changing it to this extent is a rewrite in itself.
  • In order to make things a bit more legit than they are now, I’m planning to publish iComics 2 as a company, not as an individual, and so it will be under a separate Apple account on the App Store.

Progress on iComics 2 has been slow, but has been extremely promising. I had a lot of momentum for it in the first half of 2020, but I’m sure you can imagine that given the current circustances, I ended up taking a break from it, and only started it back up about 2 months ago.

The reason it’s been slow is because of a lot of unsolved questions I’ve had on how to make it scale to modern devices, like the M1 iPad. Spreading out page loading to all of the cores is easy, but the challenge then is how to not accidentally consume all the RAM if all of the cores try and load in massive images at the same time.

Thankfully, these past few weeks have been super fruitful, and I’ve managed to find good solutions to all of the problems I’ve been having. So while I don’t have anything visual to show yet, I hope I will soon.

In any case, for the folks still hanging out for iComics 2, thanks for your patience. I hope it will be worth it. 😀

Conclusion

In any case, I hope you have a fantastic Free Comic Book Day! And if you have any feedback on either iComics 1 or 2, please leave a comment!

Take care, and stay safe!

]]>
https://timoliver.blog/2021/08/14/icomics-developer-update-august-2021/feed/ 0 2421
Announcing iComics 2. https://timoliver.blog/2020/01/01/announcing-icomics-2/ https://timoliver.blog/2020/01/01/announcing-icomics-2/#respond Wed, 01 Jan 2020 15:54:56 +0000 https://timoliver.blog/?p=2025 Hi everyone! Happy New Year! I hope you had a fantastic start to this decade. I’m extremely excited at all the potential in 2020, and I hope you are too.

I was doing a little reflecting recently and I came to a bit of a scary realisation. I’ve been hacking away on iComics, my little comic reader app for nearly 10 years now.

It was 2010 when I bought the very first iPad. I was so impressed at the potential it brought to the table. A full-colour, high-powered computer screen shaped like a normal piece of paper. Compared to laptops and PCs, it could be comfortably held and operated at any angle; an absolute game-changer when it came to reading comic books.

Having decided my niche would be a DRM-free comic reader, in December 2011, I started working on a proof-of-concept of the app to see if it was possible. At the start of 2012, I announced my intention to build a comic reader app, and launched the first version in late 2012.

I’ve since been adding to it piece by piece ever since. And while it’s no where as near as good as I had hoped it to be, I think it’s been a huge success. Not only has it provided a platform many people have found really useful, the knowledge I gained in the process has allowed me to make iOS engineering my full time profession.

So I really can’t overstate this enough. Building iComics has been one of the best and most rewarding experiences in my life. And to all the people who took a chance on me and bought it: thank you so very much.

But. Now that we’re looking down the barrel of a new decade, I’d like to talk about what my plans for iComics are from here.

To be frank, the quality of the codebase in iComics is pretty dismal. I had been developing iOS apps for 2 years when I started working on the app, and looking back, I knew very very little about how to properly build iOS apps, and that shows in the foundations of the app.

In addition, iOS hardware was much more limiting. The first iPad was non-Retina, had a single core CPU, and only had 256MB of memory. Positively the stone ages by today’s standards! And because of that, I architected iComics in a such a way that it’s not taking advantage of the amazing CPUs we have today.

And on top of that, I started building the app back when iOS 5 was brand new. Back then, iOS was no where near as feature rich as it is now, and in order to achieve a lot of things we take for granted today (Such as state restoration between launches) were things I built myself. In these days, that code is completely un-necessary, and in all realism, completely inferior to the native solutions Apple has provided over the years.

So. I’ve been thinking about this for several years now, but I want 2020 to be the year in which I take everything I’ve learned from iComics and use it to start building an even better comic reader.

And for now, I’ve decided to call it iComics 2. It is my intention to make it the de-facto comic reader app for iOS. 😀

How will this affect iComics 1?

This won’t be a simple upgrade to iComics 1. It’s going to be a completely new app. For now, iComics 1 isn’t going anywhere, and I’m still working on an iOS 13 update to it right now.

But from now on, I want to start writing code with the mindset that it will be modular enough that it can be re-used in iComics 2 as well.

I don’t expect iComics 2 to reach feature parity for a long time, so I’m tentatively planning putting both on the App Store at the same time. Once iComics 2 has reached parity, I’ll take iComics 1 off the store.

How will it be written?

Ideally, I don’t want to re-invent the wheel too much. The idea this isn’t a complete rewrite, more that I can cherry-pick and re-use as much as I can from iComics 1.

I’ve been working for the past few years by making new components as separate modular libraries, and then dropping them into the codebase. This has been fantastic way to promote code quality, and clean separation of concerns. In order to share code between iComics 1 and 2, I’ll be doing this a lot more, and designing all of the interfaces with that in mind.

Which language will it be written in?

Every iOS developer who knows me knows I’m still a big proponent of Objective-C. I should write a blog post separately why this is, but the overall tl;dr is that I feel really experienced at Objective-C, and not so much in Swift. And so while Swift promises to be faster to develop for, and to yield safer, more stable code, I’m still convinced I can do a much better job at delivering quality software in Objective-C than Swift.

But that being said, I’ve been writing Swift for my day job for the past 3 years, and I’ve slowly started to see a lot of the big wins it has over Objective-C. Definitely the most appealing thing is the sheer amount of code you don’t have to write. A fantastic example of this was when Brad Larson rewrote GPUImage in Swift, and managed to achieve 75% less code, but maintain feature parity with the Objective-C freamework. That was super compelling right there!

But no matter what sort of benefits/deficit arguments I could make, the truth is that it’s a complete no-brainer to start any new projects in Swift.

BUT. On that note. Since I still want to share code between iComics 2 and the 100% Objective-C iComics 1, I’m going to have to offer a compromise.

The main app, and all of its business logic will be Swift. However any third party libraries I build that are intended to be used in both apps will continue to be Objective-C.

Monetization

iComics 1 has sold really well over the last few years. Far too well than it should have any right. I’ll definitely need to do a blog post at some point, but the app has definitely proved that up-front payments is still a viable business model on the App Store.

But as my goal for iComics 2 is to become the de-facto reader, I really feel the paywall needs to be completely removed. On the same note, I’ve discovered that a super cheap one-time payment isn’t really sustainable either.

So for now, I’m considering this. The app will be free while it’s not on feature parity with iComics 1. This will let people grab it and play with it super early, and begin to offer feedback. And if they like it, they can still buy a copy of iComics 1.

Once feature parity is met, I’m considering the tried and true method of having in-app ads, with the option of a yearly subscription to hide them. This is the model that Overcast made popular and I definitely believe that when done right, this is can be a really nice experience.

I’m also debating that in addition to subscriptions, offering a one-time “lifetime” in-app purchase for those who hate subscriptions.

Will it be open source?

I believe open source is a fantastic way to let people contribute, to have 100% transparency, and to serve as a learning tool for others.

That being said, since I am hoping on monetising this thing, I don’t want the source code to be so permissive that anyone could release their own product based on it without my permission.

As such, I’m exploring releasing it under the Patron License where it’d be free to use personally, but you’d be obligated to pay me if you wanted to build your own product out of it. 🙂

The name

Let’s be real here. iComics as a name is terrible. ^_^; Not even Apple names their new products in that format anymore.

I originally picked it because the original name I wanted was taken, and I considered it a “pledge” to make the quality of the software as good as Apple’s. However that kind of backfired to a horrifying degree in that the quality of the app has dropped, and also many would argue that the quality of Apple’s software has also dropped.

But thankfully. In the giant 32-bit app purge of 2017, the name I originally wanted became free again. And I was able to snap it up. 😀

So on that note, I won’t reveal the name just yet, but it will 100% have a different name than iComics 2 by launch.

Keeping track of progress

I haven’t done a great job these past few years of keeping people up-to-date on the app. Between being super busy with work, and wanting to just code, writing blogs and making YouTube videos is just too much effort.

So instead, this year, I’m going to go back to just Instagram and Twitter. Ideally, I’ll try and find a way to link updates to directly inside the app.

I’ll also try my hardest to set up regular Twitch streams in case anyone wants to watch. 🙂


So hopefully we’ll see how this goes this year. For now, I need to focus on the iOS 13 update to iComics, but I’ll keep everyone up to date on what I’m doing as much as I can.

In any case, if you have any suggestions or feedback, please let me know.

Have a great year! Hopefully it’ll be a blast!

]]>
https://timoliver.blog/2020/01/01/announcing-icomics-2/feed/ 0 2025
iComics v1.4.5 is live on the App Store! https://timoliver.blog/2018/12/09/icomics-v1-4-5-is-live-on-the-app-store/ https://timoliver.blog/2018/12/09/icomics-v1-4-5-is-live-on-the-app-store/#respond Sun, 09 Dec 2018 05:05:41 +0000 https://timoliver.blog/?p=1913 Hi everyone!

In case you missed the memo, iComics v1.4.5 was approved by Apple and released on the App Store earlier this week!

The updated contains the following updates:

  • Support for the new iPad Pro, iPhone XR, iPhone XS Max devices that came with iOS 12.
  • Added the ability to sort comic collections alphabetically.
  • The ability to turn comic pages with your Apple Pencil. 😀
  • General updates and improvements for compatibility with iOS 12.

To commemorate the occasion, I created a small developer update video on YouTube.

Like I said in the video, my main focus now will be back to my file kit library.

In addition to that, I’ve also got a lot of other R&D projects in development for iComics 2 (Like loading images faster, and handling absolutely massive collection sizes) that I’ll be looking at over the Christmas holidays.

Thanks again to everyone who participated in the beta. Enjoy! 😀

]]>
https://timoliver.blog/2018/12/09/icomics-v1-4-5-is-live-on-the-app-store/feed/ 0 1913
iComics 2018! (No, it’s not dead!) https://timoliver.blog/2018/10/11/icomics-2018-no-its-not-dead/ https://timoliver.blog/2018/10/11/icomics-2018-no-its-not-dead/#respond Wed, 10 Oct 2018 17:26:48 +0000 http://timoliver.blog/?p=1886 G’day! It’s been a while, but the reports of my death are greatly exaggerated. Mostly. 🤣

I’ll go into more depth in this post, but for starters, here’s a video I produced for the occasion. 😁

I’ve been toying with the idea of making dev videos for a while now. I had a lot of fun producing this one, especially because I’d never tried Final Cut Pro before. But on that same note, I had no idea what I was doing the whole time (and I’m sure it shows). Let me know if you want more. 😜

So to follow up what I said in the video, since basically the end of 2017, everything got completely crazy. My job at Realm ended, I did some contracting from October and I did some overseas job interviews at the same time. And eventually I ended up moving to Japan. And while moving to Japan has been awesome, it also basically meant was all this time has been spent getting set up: finding an apartment, furnishing the apartment, setting up a home office etc. 😰

It’s been nearly a year, but I’m finally back in a position where I can work on iComics. I’m so excited. 😁

So like I said in my video, I want to start streaming my work on Twitch. My apartment has a lovely gigabit connection, (something my fellow Australians would absolutely kill for) and I want to make sure it gets proper use. 😃

The absolutely first thing I have to do is get iComics running on iOS 12, so it looks nice and shiny on iPhone XS Max. I plan to stream that this weekend if I can. My Twitch channel is timXD. Please feel free to follow if you want to watch. 🙏

After that, my plan is to return to TOFileKit. While the repo might look empty, I’ve already done a lot of the work in iComics, so I mainly need to start pulling it out and seeing what breaks.

To parrot my video one last time, I’m really happy how this app has let me come. I know it deserves a lot better love than I’ve given it now. Hopefully from now I can make that happen.

See you again soon! 🙂


If you’re curious about where I got the Attack on Titan comic books up there, they were available as a Humble Bundle pack a little while ago. I highly recommend keeping an eye on Humble Bundle. There’s some fantastic things that appear on it! 😀

]]>
https://timoliver.blog/2018/10/11/icomics-2018-no-its-not-dead/feed/ 0 1886
iComics v1.4 Released https://timoliver.blog/2017/12/14/icomics-v1-4-released/ https://timoliver.blog/2017/12/14/icomics-v1-4-released/#comments Thu, 14 Dec 2017 08:45:59 +0000 http://timoliver.blog/?p=1861 tl;dr: iComics v1.4 with support for iPhone X and the new iPad Pro is out! I’m also planning to give streaming iComics dev another try. Follow me here.

In case you missed it, I updated iComics to v1.4 and shipped it late last month. Sorry it took so long, but hopefully it fixed a lot of the issues people were having.

While a bit of an incremental update, iComics v1.4 fixed a lot of stuff under the hood:

  • It now renders properly on both the new iPhone X, and the new 10.5″ iPad Pro.
  • It integrates with the new Files app, which should fix the download issue with comics being unelectable in the Google Drive app.
  • Fixed an issue where the app would crash if you tried to save a copy of a page to the Camera Roll (Sorry about that one!)
  • Updated all of the third party dependencies, notably Realm, in order to improve stability and performance.
  • Tweaked Realm’s settings in order to mitigate a crash that was occurring on devices with smaller RAM pools.
  • Fixed all of the broken links in iComics, including the App File Sharing tutorial and the link to this blog.

Please give the new version of iComics a try and let me know what you think. 🙂

Why iComics Development is so Slow

I’m very sorry that development of the app has been going slowly. I basically took a hiatus this year in order to 100% focus on the work at my company. While I don’t regret dedicating all of my time to the company, I am a bit disappointed in myself that I didn’t fix a lot of the issues people were reporting in iComics sooner. My circumstances recently drastically changed, and so I’m hoping that will now let me spend a lot more time on it. Thanks for your understanding. 🙂

The Future of iComics

I’ve been working on this app for a while, and it’s starting to show. All of the architectural considerations were made during the era of the iPad 1, where iOS devices were single core, and had very limited RAM. I’m no where near done with this app, but it’s gotten to the point where it’s very tricky to add new features, and the code is very unpleasant to look at.

My current plan for the app is to finish up adding a custom file downloading system. I spent the last year two years compiling libraries to allow integration with FTP, SFTP, SMB, and WebDav, and designing a UI system that can interoperate with those protocols, and as well as the public APIs of Dropbox, Box, Google Drive and Microsoft OneDrive.

I recently decided that I’m going to pull all of that code out of iComics and treat it as a separate module. ‘Downloading files’ is a very generic feature, and so I feel like this is one that should be done separately, in such a way that it could be reused in any other app that needs generic file handling. To that end, I’ve created the GitHub repo TOFileKit and will be working on open-sourcing all of the work I’ve done in there, open source.

Once this work is done, and iComics has the full file downloading support, I plan to release one more version, before I cut loose and re-implement a whole new app and engine from scratch. iComics 2.0. 🙂

Streaming Development of iComics

In order to make progress of iComics more transparent, as well as to allow anyone who’s interested to see how it works, as well as motivating myself better, I’m planning on starting to stream iComics development sessions. It’s something I’ve been wanting to do for a while, but until recently, I hadn’t put the time into learning how to do it. XD

With Twitch finally enabling creative non-game related streams, and with the recent release of the Justin.tv usernames, I’m going to properly get into Twitch streaming now.

If you’re interested, feel free to follow me at http://twitch.tv/timxd

As aways, thanks for using iComics! Have a happy holiday and see you next year!

 

]]>
https://timoliver.blog/2017/12/14/icomics-v1-4-released/feed/ 2 1861
iComics – December 2015 https://timoliver.blog/2015/12/13/icomics-december-2015/ https://timoliver.blog/2015/12/13/icomics-december-2015/#comments Sun, 13 Dec 2015 11:20:33 +0000 http://www.timoliver.com.au/?p=1678 Hi everyone! I can’t believe 2015 is already nearly over! Jeez!

I thought I’d do a reeeeally quick update on where we’re at with iComics, and what the current goal is. 🙂

iOS 9 Crash Panic

The release of iOS 9 was a little more exciting than I anticipated. In that I had to literally drop everything and scramble for a little bit there. XD

When iOS 9 hit, the number of 1-star reviews for iComics shot up very sharply, citing that the app simply would not start on ONLY SOME of the users’ devices, even after deleting/re-installing.

Having NEVER EVER seen this on any of my own devices, I was at an absolute loss to try and figure out how to fix this bug. Thankfully, one of iComics’ users, an amazingly awesome chap named Cameron Cool came forward with his iPad Air 2, and let me use him as a guinea pig with a new beta build of the app.

After a few hours of testing, this was the crash log I ended up with.

After scratching my head for several hours, I finally managed to trace the issue down to this block of code:

In a nutshell, iComics uses an OpenGL API to work out what the maximum supported image size of the GPU for that particular device is.

What I didn’t realise was that the ‘setCurrentContext’ call ABSOLUTELY MUST be set back to nil when you’re finished, otherwise it will interfere with other parts of iOS down the line. This was apparently already happening to a small degree on iOS 8, but it GOT SO MUCH WORSE on iOS 9.

In any case, Apple were kind enough to allow me an expedited review in order to release a new version fixing that issue, and the reception to the app has been extremely positive ever since.

Major thanks to Cameron for his help. I absolutely would not have been able to fix this issue without him. 🙂

iPad Pro Support

I’d been hoping for a jumbo iPad to happen for a long time; ever since the announcement of an ‘Air’ iPad implied as much. So I was absolutely over the moon when Apple announced it alongside the new iPhone. When they came out a day early, the Apple guys at the main store here in Perth told me I was quite possibly the first guy in the city to actually buy one from them. XD

Just in case it wasn’t obvious, these things are big. Hilariously big.

iPad Pro vs iPad mini. XD

A photo posted by Tim Oliver (@timoliver) on

When the iPad Pro was released, iComics was already configured to display at the native resolution (instead of being upscaled LIKE SO MANY OTHER APPS RIGHT NOW), but there were still a few elements that weren’t taking proper advantage of the new size (Such as the comic panels in the ‘list’ view mode). The latest version of iComics I’ve released has fixed this.

Now that the iPad Pro is out there, there’s two features I REALLY want to add to iComics:

  • Split-screen support
  • Dual-page spread in landscape mode

Sadly, both of those features are going to require some pretty extensive refactoring of the logic of the app, but it’s something I’m already planning down on paper to implement. 🙂

Downloading Comics from Cloud Services

I received another review requesting this feature very recently. 🙂

I mentioned this in my last blog post, but since it’s something people really, REALLY want, I better touch on it again. XD

Yes. I’m working on it. Slowly but surely. XD Here’s the latest photo I’ve put up of it so far. This should give you a good indication of the services I want to support. 🙂

Making progress on the download system UI. Slowly but surely. 🙂

A photo posted by iComics (@icomicsapp) on


 

At the moment, I’m playing with the API interfaces for Dropbox, Google Drive, OneDrive and Box. Ideally, I want to run all of their web authentication processes through a web browser interface I can control, so I can add 1Password integration to it (Something no other comic reader has done so far. 😉 )

I want this system to look and feel as nice as it possibly can, and that’s going to require a lot of custom UI code and background execution, not to mention security concerns in keeping users login credentials safe. I’ve made a lot of headway on it, but there’s still a long way to go. In any case, please let me assure you that I am indeed working on it, and it’s going to be awesome when it’s done. 😀

I’m hoping to work on it very heavily over the Christmas holidays, in order to free up 2016 for bigger and better features. 🙂

Streaming on Twitch

A little while back, Twitch brought out Twitch Creative, a new set of guidelines where it’s now possible to stream ‘the creation of things, but not explicably related to video games’. I’m quite excited about this, and I’m now considering streaming some iComics development on Twitch.

If that sounds interesting to you, feel free to follow my new Twitch account so you’ll be alerted the next time I go live. 🙂

Conclusion

Overall, it’s been a crazy year. I hope everyone had a great 2015, and I hope iComics was of use to you.

Merry Christmas, take care, and see you next year! 🙂

(The photo for this post is iComics running on my iPad Pro, displaying the comic Scott Pilgrim #1. Scott Pilgrim may be purchased DRM-free on Comixology, but I bought my copy from Humble Bundle. 🙂 )

]]>
https://timoliver.blog/2015/12/13/icomics-december-2015/feed/ 2 1678
iComics – State of the Union – May 2015 https://timoliver.blog/2015/05/25/icomics-state-of-the-union-may-2015/ https://timoliver.blog/2015/05/25/icomics-state-of-the-union-may-2015/#comments Mon, 25 May 2015 15:26:17 +0000 http://www.timoliver.com.au/?p=1543 Sorry about the last update being so long ago!

2015 has been absolutely ridiculous for me so far (In a truly good way, that is!).

Thanks to a talk I did on integrating Realm into iComics last year, I’ve started working for Realm, remotely from Perth. This has been an absolutely amazing experience so far, having learned a HUGE deal about how companies operate in Silicon Valley, as well as integrating with a team that operates in multiple time zones. The fact that this all came about as a result of my work on iComics is something I still haven’t managed to process yet. Truly awesome.

In any case, now all of the main excitement has started settling down (Although not for long I’ll wager!), I’ve been looking at the next batch of features and upgrades that iComics needs. Since I’ve been getting quite a few emails asking about updates to the app, it seems a bit of a status update is already long overdue. Here’s some of the major points on we’re were at right now. 🙂

Version 1.2.5 released to the App Store

Version 1.2.5 was released in April to the App Store (After a rather prolonged 2 week review by Apple). It featured an iOS 8 Today widget, a couple of smaller features that users requested (Including reversible comic sorting, as well as disabling iCloud backups), and some general library updates and bug fixes. Since then, over 13,000 users have downloaded the update, and the response has been for-the-most-part, positive (More on that later).

iComics was made free on Free Comic Book Day

As has sort of become tradition at this point, iComics was made free for the weekend of Free Comic Book Day to help celebrate comic books, and to allow anyone who had been on the fence about getting the app a chance to get it. Around 27,000 people grabbed it while it was free, which was an amazing turnout.

 

Certain Users Have Been Experiencing Instability in v1.2.5

This one has me a bit worried. I’ve been receiving emails from various users that the app has started becoming less stable than previous versions. This seems to manifest as the app crashing at very reliable points in its operation; especially when hot-jumping between comics. Sadly, I’ve been unable to replicate it on any of my own devices (Isn’t that always the case? ^_^; ), so I’m having a Dickens of a time trying to find out what’s specifically happening. This would probably seem to imply it’s some crazy threading-issue that only happens in a specific set of conditions. The best kind of bug. ^_^:

In any case, I’ve been planning to do a complete rewrite of the section of the app that handles loading the comic page data out of the archive files to make it more efficient on more recent iOS hardware (That code was originally written specifically to be gentle to 1st gen iPads!), but it looks like I should think about doing that sooner rather than later.

In any case, if you’ve been experiencing that problem, rest assured your concerns have been heard!

Doing Away With iTunes Document Sharing

Now that collections have now been added to iComics, the number one feature that people have been requesting is an easier way to get comics onto their iOS devices. Up until now, the main supported way has been to plug the device into a Mac/PC and manually copy the comic files to the device by drag-dropping them into iTunes. Additionally, I recently added access to iCloud Drive so it was possible to download files from your cloud accounts that way as well.

Yes. I know. Both of these methods are really lame. 🙁

While both are the officially sanctioned ways of getting content onto your devices, iTunes Document Sharing is slow and requires direct PC access, and iCloud Drive can only do one file at a time, while also having the audacity of making you wait for the file to copy with no visible visual cue.

Because both official methods are terrible, I’m looking at re-rolling the whole implementation myself. This would include proper API access to the major popular cloud storage (Dropbox, Google Drive, Box, OneDrive etc) and local network (SMB, WebDav, WiFi) services, and a proper UI implementation to allow multiple selection of files.

So far, I’ve already more or less finished the UI implementation, and it’s going to look something like this. 🙂

TODocumentPickerViewController

 

Obviously, this is going to be a huge, complex system, and I haven’t even figured out how it’s all going to slot into the app. It’s going to require a careful design consideration to ensure it’s interface is ‘generic’ enough for future services, and needs to be able to work properly in the background, even if the user decides to close the app. And it has to feel and look nice too. XD

Either way, to everyone who’s emailed me about this, or has been wondering about it, rest assured; it’s coming. 🙂

Finally, I plan to open-source as much of this as I can, so no other poor developers will have to go through the same thing. XD

A Potential Redesign of the Comic Library UI for v2.0

A little while back, I was really happy to discover that iComics made it to AppAdvice’s List of Best Comic Readers.

 

That being said, I was a bit disheartened to see that the reviewer found the app ‘confusing’ without any extra context on that. But after reading that, I stopped to take a step back and look at the app, and I’m beginning to agree.

The problem in iComics’ present design is that the ‘Collections’ menu, arguably the most important point of origin, is behind a hamburger menu, a design element that’s now been eschewed by Facebook and even Apple. Even when I was building the app, when importing new comics in, sometimes it wasn’t visible that it was necessary to go to the hamburger menu in order to actually proceed. In short, the app is not conforming to traditional app design, and it’s unsurprising certain users are getting confused.

As a result of that, not now, but definitely down the line, I want to redesign how iComics organizes collections, and subsequently displays lists of comics in order to make the app more intuitive and less daunting to new users. Right now, I’m looking at the official Podcasts app, as well as the newly redesigned Music app in iOS 8.4 as design inspiration.

I have no idea what they meant by ‘blurry text isn’t sharpened’. That could be in reference to PDF files, which is fair since I needed to take that functionality out due to memory issues (I’ll be putting it back in later!).

Handling Scalability for Massive Comic Collections

To add further weight behind the decision of a redesign, I’ve had several users telling me that they use their iPads as dedicated iComics devices, and that they’ve literally filled every nook and cranny of the device’s storage with comics.

We’re talking literally thousands of comic files here. Thousands. Blimey.

As humbling and awesome as that is to hear, I’m also really nervous about how well the app performs with handling that sheer number of objects. This also highlights some pretty epic bottlenecks in the app’s visual design, such as the collections column being too thin, and the comics menu taking a very long time to scroll. Aside from that, the efficiency of the system that handles loading the thumbnails for each comic might not be up to that as well.

I’ve very obviously underestimated the power level of some of iComics’ more hardcore users in terms of the app’s visual and structural architecture. As such, if and when I get the chance to do a complete redesign, I’ll also be taking those considerations into any new layouts. This would include things like full-screen and possibly nested collections menus, scroll-bars for extra large lists, more efficient thumbnail handling, more efficient sorting options, and a much more aggressive cache-cleaning solution.

The Upcoming Version 1.3

I was aiming to try and make v1.3 the version that featured all of the new comic downloading functionality, but given that that is still a fair while away, for the time being, I’m going to make v1.3 more of an incremental update. One feature I’ve been slowing working on these past few months is a custom cropper UI (Mirroring the cropping tool in Photos.app on iOS 8) to allow users to either set up thumbnails for comics more accurately (For example, if the comic’s original cover image features the spine) or post sections of pages on social media.

TOCropViewController

 

Apart from that, v1.3 will also have a few bug fixes, including fixing the broken zoom-lock bug. 🙂

No ETA, but the cropper is VERY nearly finished, so it shouldn’t be too much longer.

Possible YouTube Series

While the majority of the reviews I get for iComics are resoundingly positive 5-star reviews, and I absolutely appreciate each one of them, every now and then, I also get some real humdinger 1-star reviews.

iComics One Star Review

Ideally, it’d be swell if I could reach out to these guys privately and try and work out why they don’t like the app. Sadly, Apple haven’t provided any mechanism for this, so unless they come forward themselves, there’s absolutely nothing I can do.

As such, in the interests of letting these guys know that their review was indeed heard, I’m considering starting a small YouTube series where I can provide an open-letter style reply to each of these reviews, and let them know what I plan to do about it. 🙂

If you think this is a terrible idea, let me know. XD


 

So that’s the current state of pretty much everything in iComics-land right now. Hopefully this puts everything in perspective and answers any questions you may have had.

If you’ve got any other questions, or would like me to elaborate on any of these points, feel free to post a comment below, or shoot me an email. 🙂

Thanks! Hope you enjoy iComics! 🙂

]]>
https://timoliver.blog/2015/05/25/icomics-state-of-the-union-may-2015/feed/ 7 1543
iComics v1.1 released! https://timoliver.blog/2014/12/01/icomics-v1-1-released/ https://timoliver.blog/2014/12/01/icomics-v1-1-released/#comments Sun, 30 Nov 2014 16:05:11 +0000 http://www.timoliver.com.au/?p=1487 Blimey. Sorry it took so long to write this! For the last two weeks, it’s been a flurry of updating the site, sending out press releases, and responding to a mountain of user feedback, so I finally got the time to write the release announcement. XD

So! Done! After 521 days since the last update, iComics v1.1 was approved by Apple and made live on the App Store. 521 days is an absolutely ridiculous amount of time between updates to be sure, and I plan to a post-mortem of what happened at some point, but hopefully with the new look and feel, coupled with the new features, most people can agree it was worth the wait. I’ve already started getting some reviews in, and so far, they’ve all been resoundingly positive. Thanks a lot everyone!

Here’s some of the new stuff that’s included in iComics v1.1:

  • A complete redesign for iOS 7 (and iOS 8)
    iComics-iOS7-Redesign
    To match the new look and feel Apple dropped on us mid last year, iComics has been completely redesigned from the ground up to match the new design. Gone are all of the gradients and shadows (Well… mostly), replaced by a much cleaner interface and animation set that (hopefully) match the visual style and feel of iOS 7, but also sufficiently different to not look like ‘just another’ system app. Redesigning iComics was a huge task (I’d almost call this a remake) as it required having to rethink the design and layout of all elements as well as work out how they’d all integrate together. (Arguably this is the main reason the update took so long. XD)
  • Being able to organize comics in collections
    iComics-Collections
    The number one requested feature since the app launched, iComics now features an integrated collections feature. This lets you group comics in separate collections and then jump them as necessary. Collections also feature an ‘override’ feature that let you bulk apply settings to comics that get moved into it. For example, if a collection is for an Eastern comic, you can set it so any comic added to it will automatically read left. The collections UI features a custom built ‘slide-out’ style menu that is only visible when you want to manage your collections, keeping it out of the way at all other times.
  • Jumping from one comic to another
    iComics-Hot-Jumping

    Something I dubbed ‘hot jumping’, you can now choose to automatically move to the next comic in the list when you get to the end of your current one. There’s a setting to let you see a prompt before moving, as well as one that just automatically moves you to the next one.
  • A new visual layout for comic thumbnails
    iComics-Grid-View

    In the previous version of iComics, the list of available comics was a standard Apple table. This was rather limiting in that only one comic could be shown per row, and the edit controls were all stock standard Apple designed. This was always going to be a stopgap measure until I came up with something better. Spaced out over 2013 (and a little time in 2014), I built a completely custom grid view layout to replace that list view. iComics now features two view modes for comics: a large thumbnail grid version, and a ‘list’ version that heralds back to the original table design. Both view modes are powered by the same grid UI code, allowing multiple list items on one row on iPad. The view is also being backed by a new thumbnail loader system that is capable of streaming thumbnail images from disk as the user scrolls, eliminating un-necessary memory use.
  • General improvements around the code
    Having started writing iComics in 2011, I’ve learnt A LOT on how the system and code works in the following years, including things like best practices for concurrent processing, GPU-powered image manipulation, and just tips and tricks that I didn’t know before. As a result, I’ve also enhanced a lot of the code in the backend, especially the comic importing code to be a lot quicker.

Now that v1.1 is out the door, I’m starting to have a think about v1.2. There’s a few things I really REALLY want to add quickly, so I’m intending on making v1.2 a minor release, hopefully ready before the end of the year.

One thing I really want to do with version 1.2 onwards is to make the development of iComics a bit more transparent, and a lot more open to user input. As such, some additional things I’m working on include a system so I can live stream development, as well as a public bug/feature tracker for upcoming versions.

But for the immediate time being, I plan to have a nice vacation for a little while so I can recharge for a bit. XD

In any case, thanks a lot to everyone who got iComics! Please don’t forget to leave a review on the App Store!

Cheers! 😀

Tim-Oliver-Cheers

]]>
https://timoliver.blog/2014/12/01/icomics-v1-1-released/feed/ 4 1487
iComics v1.1 Sneak Peek https://timoliver.blog/2014/06/15/icomics-v1-1-sneak-peak/ https://timoliver.blog/2014/06/15/icomics-v1-1-sneak-peak/#comments Sat, 14 Jun 2014 16:14:02 +0000 http://www.timoliver.com.au/?p=1272 Blimey. It’s been a fair  little while since my last post on iComics’ development. Since starting the crazy task of re-designing the entire app to the iOS 7 design aesthetic in February this year, I’ve already started to tease a few pictures of my progress here and there along the way, mainly uploading them to my Instagram account. But after a few emails from people asking for some proper clarification, I figured an actual blog post of the current progress might be best.

Alrighty. So here’s how iComics v1.1 is going! 🙂

 The Comics Library Display

Just as frame of reference, here’s what the comics library looks like in the current App Store version of iComics.

iComics iOS 6In the current version of iComics, this layout is a completely stock-standard Apple table UI control. On both iPhone and iPad, each comic is given its own discrete row, with the iPad version padding out the row with the ‘Last Opened’ text.

To be completely frank, I loathe and despise this layout. When I was laying out the initial design for iComics, iOS 5 was the latest version in production, and as such, using the default Apple table layout was the easiest and quickest implementation at the time.

That all being said, I realise that giving each comic its own complete row, especially on the iPad, is a complete waste of screen real estate. And so, I’ve always thought of this list style as a temporary stopgap; something that would be ‘merely sufficient’ in enabling users to read comics, but something that would never stick around.

So without further ado… here’s how the comics library list looks like in v1.1!

iComics v1.1 Grid ViewAs you can see, GONE is the silly single-row list of comics, replaced by proper grid of thumbnails, suitably large to take full advantage of the Retina display, and to ensure the entirety of the screen is properly used.

Now, even though in the time since I released iComics v1.0, there have been a number of similar grid UI solutions, (including an official one by Apple), I ultimately decided that this is something I should build myself. As such, this grid layout is a custom solution I developed from scratch, starting at the end of 2012 and periodically worked on and tweaked over the entire course of 2013. It’s been tested on the iPad Air, all the way down to the original iPad (something that not even Apple’s control can do!), and has been tested and optimised to be as performant as possible. Also, it’s completely open source!

That all being said, I know that there will definitely be a few people who would still prefer the old table style library of iComics v1.0. There is certainly the possibility of sets of comics without notable cover art, that might require the title to be visible to be properly accessible, and as such, simply showing the thumbnails might be confusing.

And to that, I say, have no fear! 🙂

iComics v1.1 List ViewNot only can you display comics as just a grid of thumbnails, but by tapping the toggle switch next to the search bar, you can switch to the old comics list view. In addition, on the iPad, the list view now makes proper use of the entire screen, with 2 comics per row in portrait mode, and 3 comics in landscape mode. What’s exciting about this is that it’s NOT a completely separate set of code, but it’s actually the same set of UI code as the thumbnail grid with a few parameters changed, which means that there’s a very minimal hit on resources toggling between the two modes.

It’s taken a fair bit of effort, with a lot of testing (And a fair bit of profanity) to get this grid view working properly, but I definitely think it was worth it. I’m really happy with how nice it looks, and how much more nicely lists of comics are now presented. 🙂

Comic book collections

Without a doubt, the most requested feature for iComics has been to group comics into separate collections instead of the one giant list it has right now, and I totally agree. When I released iComics v1.0, I viewed comic collections as an auxiliary component; something that would be nice to have, but not ESSENTIAL to the core experience of reading comics. Certainly not something worth holding back the release for. But that being said, I’ve always realised that given the volume of some peoples’ comic collections, it will definitely need to be the main priority for the next big release.

As such, I’ve resolved myself to no more updates to the app until collections is properly implemented, and implemented ‘right’.

Doing this sort of thing ‘right’ has not been easy, though. Originally, I was envisioning a system like in iBooks, where there was simply a ‘Collections’ button you tap, which presents a textual list of collections, and that would be it. But the majority of people of whom I showed that idea, thought it was absolutely terrible!

So, after looking at the designs of a myriad of other iOS apps, including Gmail, YouTubeobjc.io, and even Facebook, doing a LOT of thinking, and a LOT of playing in Photoshop, I finally came up with a design that I’m happy with.

iComics v1.1 Collections

When you tap the ‘hamburger’ icon in the top left of the library menu, the collections menu slides in from the left side, over the top of the library menu. The collections menu behaves exactly the same as the comic library menu, with the ability to toggle between a grid and list mode, and sports a dark grey colour theme to make it very visually distinct. Having the collections menu styled in this sort of way is part of the reason why the grid redesign took priority; once the grid library style was complete, it was very quick and easy to copy it across to the collections menu.

The entire slide-out menu system is a custom implementation that I designed and built in January this year, and it sports a very iOS 7-style animation feel.

In any case, I’m really happy with the way the collections system is turning out. It’s not finished yet, but the majority of the major hurdles are already behind us. 🙂

The comic reader view

The actual part of the app where you read comics, or the reader view, is the bread-and-butter part of the app. Its look and performance is the thing that sets iComics aside from the other comic reader apps, and as such, I wanted to make sure I got it right. 🙂

Here’s how it looks in the current App Store version.

iComics Comic View iOS 6

And, after much playing with the design in Photoshop, and testing the capabilities of iOS 7, here’s how it looks now.

iComics v1.1 Reader

Just like the rest of iOS 7, it’s now much more flat, and takes full advantage of the iOS 7 translucency. Aside from the translucency, I’ve also modified a lot of the animations to behave a lot more like iOS 7’s built-in animations too. I can’t wait for you to see them. 😉

Additional Stuff

In addition to the new grid view, collections and the new reader view, I’ve done a few extra things here and there to try and improve the overall experience. One other thing of note is I’ve removed the prompts that periodically appear when you open the app (Either to ask you to rate the app, or just notifications in general). In its place, I’ve embedded a dedicated news menu that’s attached directly to this blog.

iComics v1.1 News Reader

The menu will display all the posts from this blog that have been specifically tagged with the keyword ‘icomics’, and although it’s currently on the main collections menu, I’ve got plans to move it into the ‘Setttings’ menu once I’ve added a few more UI features down the road.

 Where are we at now?

So, now that you’ve seen all the new UI elements, you must be wondering why it’s not shipped yet. The truth is, it’s still a little while away from shipping. As you can probably guess from the screenshots, the collections system isn’t properly finished yet, and there are still a few views here and there that look like iOS 6.

One thing that’s been a real challenge is iOS 7 itself. iOS 7 was a fundamental shift for the platform, and it was WAY more than just a simple reskin. With things like the status bar becoming transparent, a LOT of the core system assumptions that iComics was built around during the iOS 5 and 6 tenure were completely changed in iOS 7. As such, a great deal of work has gone into making sure the app behaves in the same consistent way we’ve come to expect, on iOS 7. Thankfully, at this point, I’ve managed to work my way around them, and I might even have some nice topics for future blog posts as a result. XD

At this point however, the majority of the hurdles are finished. All of the complicated UI code is finished, and the remainders are, (for the most part) relatively incidental. So while I don’t have a solid release date planned yet, I’m definitely confident that it will be soon!

In any case, this is what the future of iComics looks like. I hope you like it, and as always, thanks for your support!

]]>
https://timoliver.blog/2014/06/15/icomics-v1-1-sneak-peak/feed/ 13 1272