Posts

Showing posts from June, 2016

LevelDB

I've been playing with the LevelDB library recently, so I took some time digging around its source code (https://github.com/google/leveldb) and reading articles/papers. In this post, I’m going to share some things related to LevelDB that I most enjoyed learning about. If you don’t know much about LevelDB, here’s a quick overview: LevelDB is a C++ library that stores key value pairs of byte arrays sorted by key. Operations include Put(key, value), Get(key) and Delete(key). It’s called LevelDB because it is arranged by levels: cache, log, level 0, level 1, level 2 … In general, after Level x reaches a limit of 10^x MB, one of its files gets compacted (merged periodically) into Level x+1. Level 0 is a special level: when it hits its limit of 4 files, at least one of its file gets compacted into Level 1. Furthermore, the files in Level 0 can contain overlapping keys, whereas the keys in the files in the other levels cannot. One of the things that interested me was the underlying d

iMessage Apps: A More In-Depth Look

Image
This post includes some FAQs about iMessage and tips for developers who are interested in building interactive iMessages and iMessage apps. Click here for an overview of the additions to the iMessage app and WWDC 2016 in general. What does using an iMessage app look like?  Users get to your app by swiping through their Messages App Drawer   They can see both compact and expanded views of your app, and have the ability to switch between the two whenever they want. (You are provided with willTransition and didTransition methods, which you can override to be prepared when users switch between the presentation styles.) Compact view Expanded view How can people get my iMessage app? From the app store dedicated to iMessage apps - your iMessage app doesn't need to be attached to a separate full app.  If someone's friend sends them an iMessage through your app, they will see a link at the bottom of the iMessage where they can download your app.  Message

WWDC 2016

Image
I just wrapped up my second year at WWDC! It was great meeting so many people, making new friends, and talking to Apple engineers in the labs. Some things I thought were especially noteworthy: iMessage . Apple completely revamped their iMessage app to include recorded handwritten messages that you can play back, bubble and screen effects, music sharing, reactions, and more emphasis on emoji, including suggestions and 3x larger sizes. However, I'm most excited about iMessage apps! Not only can non-programmers now quickly make sticker packs without writing a single line of code, but also developers can create interactive iMessages. People can download these apps from an app store in their iMessage apps. Furthermore, the messages can be saved in sessions, so people can save screen space - this is especially useful in group chats. For example, in Apple's demo iMessage app, you see just the final ice cream and the history ("we added scoops") instead of a bunch of