Show HN: Thunkable – A drag-and-drop tool for anyone to build native mobile apps
thunkable.com
thunkable.com
I’m one of the creators of Thunkable, along with WeiHua Li. It is a drag-and-drop tool for anyone to build native mobile apps. We've been working on this tool at MIT and Google for the past few years as an open source project called MIT App Inventor, and we decided to make a product (Thunkable) around it to better support our users. We’re in the current YC W2016 batch.
There are two parts to the tool:
Designer: Allows you to create an app UI by adding different UI components to your screen, such as buttons, TextBoxes, GoogleMaps, etc. It also allows you to add non-visible components to your apps, such as SMS receivers or NFC sensors.
Blocks: Thunkable has a blocks-based programming language that makes it easy for novice programmers to use, but is sophisticated enough for seasoned developers to use (you can make functions, variables, callbacks, etc.).
Thunkable then compiles the blocks (Java/Javascript) to Scheme to binary .apk.
There is also a Thunkable app on the Play Store that you can connect to your Thunkable web app, to test your apps. The app live interprets everything that you add to Thunkable in the browser and shows it on your phone in real-time.
We’d love to hear your thoughts on how to make it better, and what things we don’t yet support that you’d like to see.
Thanks, Arun
It seems to tackle the hobbyist use case pretty well.
If it made pretty applications, and not just functional ones, it could be of use as an advanced mockup tool. If it produced Java code instead of just APKs, it could be a great prototyping tool, where you start here then you can hand this over to an engineering team who can start with this and not from scratch.
If you had bi-directional Java<=>Thunkable support (the same way WindowBuilder or Android Studio do), you could have a Cloud IDE on your hands, which is where I start getting interested.
For me, I couldn't stand using the blocks with a mouse, nor restrict myself to not using libraries, so despite the pain of working with Android Studio, it's still definitely preferable to using this.
If it were a full on cloud IDE with great UI support, it could become a way for UX/Dev teams to work on the product together, where UX can tweak things and move them around as they like and check them into a branch of the real product, but I'm not really sure what it would take to get there since I've never really worked on Mobile UIs.
Something for you to fix there.
;)
Honestly it would not have been disingenuous to exclude that tiny link clause altogether, but now they're being punished for transparency, because people are too lazy to click on the the "About" link for the page they provided.
[1] http://techcrunch.com/2016/03/05/mit-spin-out-thunkable-hope... [2] http://appinventor.mit.edu/explore/our-team.html
What would be the main market you're aiming for? Educational? Build once, run on multiple platforms? App builder for non programmers (Designers, PMs, CEOs without CTOs)?
Here's some feedback based on my personal impressions from playing around a bit with the UI: (All on Chrome 48.0.2564.116, Windows 7 64bit).
1. I love that you can drag and drop UI elements, but personally I've never been much of a fan of drag and drop code blocks elements. This would probably be the #1 issue preventing me from adopting a product like this. I find it more confusing and more complicated than writing simple code, even in a completely new programming language.
2. It took me quite a long time to realize "blocks" was what I need to click on if I wanted to add my own functionality to the UI.
3. I would expect double clicking on a button or right clicking on it (In either the viewer or components tree) would give me a context menu. Alternatively - take me to the blocks section related to this UI Element (similar to VB).
4. If I've selected an item, I want to be able to delete it by either pressing on "delete" or by moving it off screen. "Delete" stops working if I add a new element and only returns to working if I click on "Components".
5. The "Apps" menu feels quite overwhelming. What's an aia (a zipped archive of json, xml and properites of course)? Why do I even need to download it to my computer? Can I edit it on my computer? Why would I need a "Save As?" option, and why isn't the project saved every time I edit it? The Keystore options are especially cryptic, and I imagine you'd have to something to educate anyone who hasn't released an app in the past. Also, would expect them as part of a Build/Release section.
6. Context-sensitive help would be a much appreciated feature. Lets say I add a gyroscope element, and start setting up the gyroscope logic. Would be really helpful if I could just hover or click on a question mark to figure out the possible values for xAngularVelocity or units(ms/s? utc?) used for timestamp.
This information is available through the right click menu, however: 7. This is the first place in the UI that a right click does anything. After trying to right click in the designer with nothing happening, I was actually conditioned to not even try right clicking in the blocks section. I also discovered the "Shift" functionality to find a code block using a textual search. Why not have a search option always visible? Felt a bit like an Easter egg.
8. Test menu -> Thunkable live. gives a QR code that's only readable from within the Thunkable app. To actually download the thunkable app, I have to: a. click on "Need help finding the thunkable app?" b. Scroll down until I find the QR code.
Perhaps a better strategy would be: Provide a QR code to app.thunkable.com/test/blabla Register the thunkable app to handle links that start with app.thunkable.com/test... If the link is opened in a browser, take the user to download the thunkable app. (Redirect to google play)
Alternatively - just provide another QR code and direct link on "Connect to thunkable live" modal dialog.
Really impressive work! Knowing first hand how much code it takes to set up an android app that displays the users lat/long in a text view, really impressed by how easy it was to do with Thunkable.