Inkdrop Mobile v2 is Now in Private Beta

Hello there. I’m Takuya (craftzdog), the solo developer of Inkdrop.

Inkdrop Mobile v2 is Now in Private Beta
Inkdrop Mobile v2.0.0 release candidate

Hello there. I’m Takuya (craftzdog), the solo developer of Inkdrop.

I’m happy to announce that long awaited new mobile version is finally here in private beta! It’s been 6 months since the last roadmap was announced..I feel that was like a long time ago. I guess some people were thinking this project is kind of inactive recently unlike the early days. But actually I’ve been working very hard on this every day as you may know through my tweets about the development progress on Twitter. Thank you so much for your patience for a long time.

Let me tell you a bit about what I have done so far and the app having got a whole new interface with a lot of improvements.

Built completely from scratch

Yes, that’s why it took for 6 months. As I wrote in a blog entry, Inkdrop needed a fundamental re-design so that it can keep evolving while ensuring it to be secure, stable, clean and simple. The app’s new base modules are written in JavaScript + Flow and have some tests. It’s planned that these modules will also replace the current desktop implementation during the next roadmap. When I could finish some more work, I am able to easily maintain the app working across 5 platforms that comes from a single common code base. This is a significant step for us, including you, to make sure this project more sustainable. I’m happy to get this heavy and difficult task having almost done in only 6 months.

Let’s take a look closer at the detail of this update.

Great performance improvements

The previous version had a big problem: It was very slow — lots of lags even on a fairly new and powerful device such as Google Pixel 1 according to the user reviews. Why it is so slow is that React Native apps are basically built with JavaScript which doesn’t support multi-thread, so I was struggling to make the whole data access happen in background thread. There were three big bottle necks that affect UI:

  1. I/O with SQLite
  2. Tokenizing text for full-text search
  3. Storing lots of word tokens

For 1, I’ve fixed my sqlite3 module to run every operation in background thread. And 2, I created a tokenizer native module which allows you to tokenize Japanese text in background thread. For 3, I hacked PouchDB to let it split tasks into small chunks. These efforts yielded smooth scrolls and non-blocking UIs that we have strongly wanted.

And the editor — it was also very slow to open notes — had a great improvement. The reason of slow loading is that it is a web-based component and the inefficient view structure. The app was necessary to load a webview every time you open a note, which causes you an unacceptable loading time. Since React Native requires a declarative way to compose view structures, it always unloads the webview when you close the editor screen and back to the note list. To resolve this problem, I have made a convoluted screen component which renders the editor behind the note list in order for the editor not to be unloaded by React. This component successfully shortened much time to load the editor.

By these improvements, it performs well on my Moto G5 (it’s 2x slower than Google Pixel 1).

The first-class Android support

It is almost unavoidable the app UI tends to look like iOS-ish since I’m quite iOS oriented. But thanks to NativeBase, the well-designed corss-platform UI component libray for React Native, I could effortlessly build UIs conforming to Material Design for Android users. I hope you would be comfortable to use it on Android :)

The Markdown editor for Android was quite incomplete and inconvenient — it didn’t support almost features that should be there if you would call it ‘editor’. It had only Markdown syntax highlighting and none of other features were supported, sadly. This was all due to a technical difficulty in terms of implementation of an editor for Android as there are only very few apps whose editor support adequate set and quality of features on Google Play Store as far as I know from over 10 apps I have tried. But I did it. The new version comes with the same implementation of the desktop app, which means that CodeMirror runs on Android. So you’ve got the toolbar, continue-list, syntax highlightings in code blocks, auto-indent, Japanese input support…and more. It gives us many possibilities such as, I think, vim keybinding is not impossible to support in the future.

Full tablet support

We basically still need PCs to do programming but we need the app to work ubiquitously on every device because we work anytime. So I understand the tablet support would convince you more the app is convenient, enjoyable and powerful. I am one of those who wished to use it on their tablets. Yeah, so I’m very happy to have it on my iPad Pro!

The app looks similar as the desktop app with three-columns layout. The side bar and the note list can be toggled, which provides you a distraction-free reading and writing experience of notes. I hope you enjoy note-taking on your tablet with big touch screen.

Dark theme

I don’t know why programmers, including me, tend to prefer dark UI. But no doubt it’s absolutely cool. In this beta version its default UI is set to dark theme. Welcome to the inverted-color beautiful world on mobile.

Early access open to paid users

It would have not been possible without all your support. So I’d like to open this beta testing to our loyalty paid users only.

To join the private beta testing, please follow these steps:

  1. Login to the forum
  2. Open up the topic — It has a restricted access where only paid users can view and post. If you can’t open it, please let me know.
  3. Post a comment and tell me your platforms (Android/iOS) — Then I will invite you via your registered email address from Google Play Console and iTunes Connect. Please report any issues you found to this thread

Thank you for your help and support!