TIKI v0.3.0 is LIVE!
Here are Mike's Tech Updates from our Discord Server
Disclaimer: This is a repository of very slightly edited text directly from the #development channel of our Discord server. This channel will be the primary place where Mike will provide updates about progress and releases of the TIKI App. This article serves the purpose of documenting the posts on a different medium for those who do not use Discord. If you are interested in joining you are encouraged to do so here:
January 25, 2022
I'll be posting weekly development updates (coding consumes basically every waking hour of mine and Ricardo's time these days) on Friday's recapping our work each week.
Even tho it is Tuesday, I wanted to kick things off with an update on the latest update, which we have been working on for MONTHSSS. It's a big one that's been a long time coming.
There are a couple of huge changes in it. And while it may not look like much from the outside, it's a big deal.
1. Parallel data fetching.
Obviously, the TIKI app is all about reclaiming ownership of your data, which means we have to first find all your data for you. That's a lot of data to index, a lot more than a typical app, which uses a pattern called lazy loading to only fetch the data you need "right now." Each data fetch takes time; for an email, it's about 100ms (we have to do 1 for every email you have). This adds up fast; 10k emails is over 15 minutes. It may not seem like a lot, but with mobile apps, you can only reliably fetch data while the app is in the foreground running or for about 30s once a day while in the background. Sure there are exceptions and special things you can do in Android, but you can't build an app for the whole world like that. The point being when fetching data (which is the basis for the entire product), we need it to be blazing fast.
So........ we've developed a parallelized data fetching pattern. We've found that reliably we can run upwards of 100 fetches in parallel without disturbing the OS or other apps. Meaning, in the right conditions, our app is 100x faster. In reality, it depends; for example, Google's API has a limit of 250 requests per second (still 25x faster).
It's been a long time coming, I'm sure it's full of bugs, and there are definitely more features we need to build into it, but it's a HUGE step forward for the app.
2. In-app knowledge base
We're moving towards consolidating the whole app experience in the app. I know it sounds silly when worded like this but what we mean is, from the app, you should be able to get support, report bugs, see our roadmap, and get an answer to any questions you have. One step at a time, but the first and probably the most important is access to an update-to-date knowledge base. If you can't find what you're looking for in there, @Shane's the guy to get the answers and load them up in there for everyone to see.
3. No more lost keys
We know the keys are a pain and everyone keeps losing them! Likewise, I think everyone understands the reason you can't just have a TIKI login and password is for safety & anonymity. So we design a whole new type of secure, anonymous key backup system. Starting with the next update, everyone will set up a pin code and passphrase, which will allow them to anonymously and safely back their keys up with TIKI. We can't decrypt (access) your keys, nor do we even know whose are whose. It's a pretty neat system, and it becomes really important once we start issuing NFTs and eventually $$$ for data.
4. Crypto wallet, localchain, and NFTs
We're sooo close to starting minting data NFTs for everyone, the next major step towards getting paid for your data! This release has our new crypto wallet, setting us up for the very next release to start minting NFTs on TIKI's unique blockchain. More to come on this later!
Thank you, everyone, for your patience. It's a lot of work to build something this radically different, especially at the volume of data we're talking about.
I know we said the release would be out last week, but we ran into more bugs at the last minute. If it feels like this is a repeating pattern, the app codebase is getting quite large, and we need to take some time to refine, split it up, and clean it up. In software, a little more code = a lot more bugs.
For funsies and to put it in perspective, we currently extract ~ 5 data points per email, so if we have 100k users and each user has only 10k emails, then TIKI's beta needs to be able to handle:
100,000 * 10,000 * 5 = 5,000,000,000
5 billion monetizable data points. That's a big-ass beta.
January 28, 2022
We’ve been hard at work on our crypto wallet integration with the TIKI app. Specifically the key backup/recovery mechanism.
The big achievement this week is a new code pattern, micro-libraries. As I mentioned in the last update the code base is getting big and as the code base gets bigger it becomes increasingly difficult to build new features without creating lots and lots of bugs. Our new pattern involves breaking the code up into lots of little “libraries” using the power of fluttter.
This allows us to build faster, more testable, and robust code. It’s really starting to come together quite nicely. For the soft engs following along take a look at the repositories Recover, Wallet, & Httpp in our GitHub.
Looking forward to the update rolling out. Here’s a snapshot of the new key recovery flow we’ve been building:
February 5, 2022
Wooo! Version 0.3.0 of the beta is out. It's been several months in the works, and we're very excited for the track this update puts us on. The app may not look much different, but under the covers, it's slick as hell.
Android: You should receive a push notification to install the update, or it should auto-update. If not, go to the TIKI app page on the Google Play store and look for v0.3.0.
iOS: Open TestFlight
For those of you still on the waitlist, if this build goes well and isn’t too buggy, we will add 10,000 or so more spots to download :)
HEADS UP! When you install the update, it will log you out. When you log back in, it will ask you to create new keys. DO IT. We needed to update everyone's keys for our new blockchain . Your referral code should carry over just fine, but if for some reason it does not, just reach out to Shane on Discord or via email@example.com.
To read more about what all went into the build, check out my posts above. In short:
- Fast (parallel) data fetching — absolutely critical for everything we do)
- Knowledge base — in-app FAQs, which will eventually become bug reporting, support chat, etc.
- Crypto wallet — data NFTs coming very, very soon
- Anonymous encrypted key backup/recovery — no more losing your keys
- Micro-library code architecture — we're building faster than ever before
Shout out to Ricardo for all the late nights and hard work; we couldn't have done this without you.
Thank you in advance for everyone bombarding Shane with bug reports after the update drops. Please dedicate bug reports to the #bug-reports channel, or firstname.lastname@example.org if you do not use Discord.
It's so critical to go thru this with y'all. I'll leave everyone with one last anecdote about the importance of beta testing:
In October, we released the first beta version (0.0.1) of our knowledge graph (the basis for how companies will buy your data). The original design, aka ontology, was modeled after a neural net. We had plenty of reasons to think that was the right design, BUT once we added it to the app. Oh boy, did we quickly learn it needed changes! Without thousands of people testing the app, we wouldn't have found the problem. At least not until much later, when it became a big issue instead of a minor inconvenience.
So thank you, everyone, and while I may be grumpy as the bugs fly in, I do greatly appreciate you taking time out of your day to help. Together, we will fix data.