Just before I submitted an entry to this contest I came across an open source module for integrating the Pebble SDK into the Appcelerator platform. I took a look at it and played around a bit with the integration, but since I'm not an Objective-C guy that's as far as it went. Yesterday I finally had the time to really start testing out the Pebble -> Phone communications, and the module was totally borked on that topic. (Phone -> Pebble I got working right away a few days ago with minor troubles.)
I spent hours trying to get it working by looking at a million other people's code and copy+pasting (like I said, I'm not into Objective-C). Finally, thanks to a friend and colleague, I was shown the error of my ways and together we resolved it. Which is great, because for a minute there I thought BiteBook was DOA. And also great because now the module can be fixed and can inspire others to hack on a Pebble.
Only 10 hours left until I can stop wracking my brain about all the "what-ifs" and just start coding this thing.
Well, the time has finally come, and I've been working on the ground work for BiteBook since I woke up (at 3pm... thanks, India). I've taken an open source boilerplate I helped architect and popped it into the iOS project, and I've been tweaking it to work for my specific needs. Some of the screens are already laid out, and by the end of the day I should have the bulk of the screens mocked up and ready for wiring.
Thanks to the new CloudPebble UI builder I was able to do a quick mock-up of the Pebble app. I needed to do this because I have to start preparing for iTunes app store whitelisting and have to submit screenshots + banners to both iTunes and the Pebble app store. Looks great on my wrist; went and took a photo while holding my fishing rod:
The app is progressing nicely. I finished setting up the database scheme (after spending a few hours running in circles trying to import an SQLite table). I wrapped up the bulk of the UI work, and connected a lot of the screens to the database. Tomorrow I'm going to try and wrap up the logging form, add in some Pebble connection code, and start on the Pebble app.
I finished the logging form today, so the bulk of the iOS app work is done; it'll just need some tweaking and fine-tuning from here on out, I hope. I also got the phone pushing data updates to the Pebble, which was quite easy thanks to my prep work. The main Pebble screen is also done; very quickly, thanks to CloudPebble UI builder. I'm struggling on figuring out how to send the species list from the phone to the Pebble. It's a lot of data, and I'm also not good enough at C to understand the best way to store that data. I asked a few days back on the Pebble forum for some help, but the answers were way over my head. We'll see what happens.
I just finished up adding all the Pebble screens to the app; I had to re-work my architecture a bit to make it more MVC-ish. Again, CloudPebble UI builder came to my rescue and shaved a few hours off the dev time. After struggling more with the species list problem, I've decided to cut out that functionality for the initial release. Pebble app dev is pretty much wrapped at this point; I just have to get the Pebble to send messages over to the iPhone. Then comes lots and lots of testing and tweaking, because I'm not entirely happy yet with the communication connectivity. I also spent a little time and made a website this afternoon; check it out at BiteBook.net
Did a lot of code clean-up today; also started to add some polish to the application. I moved the settings screen from one of the bottom tabs to a icon in the title bar. I also finished the Pebble to phone communications, which took a lot of work, but is working nicely now. The connection is great, and works perfectly when the iPhone app is in the background. I also took a few minutes to add the map screen back in for some added functionality.
I spent all of my dev time today trying to re-implement the species selection list. After finally getting it working, I ended up ditching the entire thing. It's just another step in the set-up process and takes away from the whole "simple" vibe that BiteBook has going. Wasted day, but that's alright. I have some ideas of how to log more detailed species information, so maybe I'll try and get that working tomorrow. I also squeezed in a few tweaks to the settings screen (added 'contact us', 'share this app', etc) and re-worked some DB logic to fix a minor annoyance.
As promised, I came up with a half-solution for the subspecies problem. On the watch it'll just capture the major species group (e.g. "Bass"), but on the phone you can specify a subspecies (e.g. "Bass, Largemouth"). Tomorrow I'll work on adding an "edit catch" option on the mobile app so you can go in after you're done fishing and optionally specify subspecies for your catches.
I'm not sure how much I like this method, and might ditch it in favor of having the subspecies selection be another screen on the Pebble app. So you'd select "Bass", and then be presented with the subspecies to select from. I'll have to ask my lone beta tester what he thinks; he's also my boss, so he knows how to be brutally honest with me.
I went out fishing last night with BiteBook on my wrist and it came in handy. After two weeks of just nibbles I finally found the fish; hit 5 bass and 2 sunfish. All were quickly logged in BiteBook; I'm sure the fish appreciated getting back in the water faster! A few people who walked by stopped to watch, and most of them asked what I was doing with my watch; everyone seemed to really like the app, and they all loved the Pebble. No surprise there.
I finished the "edit catch" functionality. It all works quite smoothly, so I'm happy. I also added a new "Syncing" screen on the Pebble so the user knows something is happening, and added an error screen in case the data fails to send. I also added in some different vibrations (one short for success, three rapid for error) so the user doesn't have to stare at their watch. Yay for UX improvements.
I'm not quite sure what to do next. I'd love to tackle the Android stuff, but I don't think I have quite enough time to do that, and I don't want to devote myself to it and then have a problem with the beta take me off in another direction.
I did some "beta testing" today; by which I mean I went fishing and didn't do any coding at all.
Did some more beta testing... but for real. I walked around the lake, ensuring that the background mode works, the geolocation catch count updates, etc. All is well. Did some minor clean-up to get things sorted, and added database versioning for future usage. I think I'm going to submit the app to the app store tomorrow unless I can think of any last minute changes.
I woke up today and tried submitting BiteBook to the Apple App Store, but am getting a nasty error about app entitlements. I spent a few solid hours trying to get around the problem to no avail. Hopefully Pebble's support team can assist.
Figured out what I was doing wrong. I had checked the external accessory entitlement when creating the App ID with Apple, but that's a beta feature and isn't necessary for the Pebble connection. I removed that and all worked well. I submitted my iOS app to the App Store, but then realized I messed up in creating my Pebble app (I had it as "companion only"). Had to fix that, then update the deep-link in the iOS, and upload the new binary. Ugh, what a mess. Hopefully changing the Pebble app ID doesn't mess with the MFI white-listing. Fingers crossed.