(If you are new to Project SmartCart, get an intro here.)
As Techfair approaches each day, SmartCart needs to meet up to the expectation.
I have written many things I’ve learned about UI and UX, something I’ve never cared for before this project. Though the things I’ve learned and realized about UI are obvious to those with experience, this might be the same reason why I haven’t written about the backend of SmartCart, or about developing for Android.
So here is an overview of everything else about SmartCart.
Top Level Overview
As shown on the SmartCart Poster, SmartCart is comprised of 1) the cart, 2) interactive display, 3) barcode scanner, and 4) Square. The Square connects to the interactive display via the headphone jac; the barcode scanner (Motorola CS3070) communicates with the interactive display via blue tooth; the interactive display, in this prototype, is a Motorola Xoom tablet, running Android 4.1.2; and the interactive display will be mounted on the shopping cart.
The Android App
The work that I’ve been doing so far is developing the app that connects it all. ADT and Stack Overflow has made my life incredibly easy. In fact, I’ve been shamefully playing for most of this winter. The app consists of an Activity for each functionality, such as Find and Checkout. Then there is the SmarCart’s Model, which consists of User/Session model, and item model. Third, there is the database of items. Lastly, the UI, which is being handled in android’s /res. I wouldn’t call this MVC pattern exactly, but it’s about the same idea and it works.
Problems I’ve encountered
The main problems that stressed me are connecting the components of this project. There are a couple of connections: Tablet – Barcode Scanner, Tablet – Square, and Tablet – Cart.
Tablet – Barcode Scanner: Months ago, I purchased a cheap Barcode Scanner on Amazon that promised to work with computers. When I got it, it worked with Windows very quickly, but it would only work on OS X Lion and not Snow Leopard. Not a big deal. Then, one day, I realized… it can’t power itself. Tablets also don’t supply power externally. I didn’t have to try, I knew it wouldn’t connect to Xoom. While in China, I ordered CS3070, 10x the price of the previous Scanner. Will try it out next week, and it better work.
Tablet – Square: For some reason I thought integrating with Square would be trivial. Another thing that I left till (sort of) the end, and it turned out to fail me. With my limited connections, I was able to find a friend of a friend who works at Square. From that friend of a friend, I was able to get an advice from the expert, on prototyping. I found out that there is no integration available, at this time. Oh well. But by listening for mic-input, I will be able to detect card-swiping. I’m not going to write my own square register, but at the very least, I will be able to simulate the experience.
Tablet – Cart: I found a cart. I have the tablet. I imagine one will stay on top of the other.
At this point, most of the Mainland work has been done (implementing most of the features), and I’m excited to go back to the states next week to put things together. Failure at this point is not an option.
Dear readers of my terrible technical description, I’d love to hear your thoughts on my first real-world project, and how you would do things differently. Or if you would like to hear more.
(This post has not been proof read.)