Handicap Accessible TV Remote DIY Project

30 Jan 2014 In: Hacking

Background

Something Personal. A little over a year and a half ago, my family suffered an unexpected accident. My father-in-law was struck by a sliding glass door, fell, and did irreperable damage to his spinal chord. What followed were months of surgery, waiting, coping, rehabilitation, and adjustment. Amazing that in one unexpected moment, someone with full mobility and use of limbs can lose all of that. What he regained was jus a little movement, just some elbow, neck, and bicept, but nothing fine motor skilled in the hands, and nothing in the lower body.

Another unfortunate side effect of the 3 months of hospitalization is that he developed a deep bedsore, which now required he be in bed (ironically) to relieve the pressure as much as possible while being turned frequently. So, he watches a lot of TV, but he can't change the channels himself, the remote buttons are way too small, and even the "big" universal remotes had bottons that were too small.

Introducing, the Handicap Accessible TV Remote.

What this is is essentially the factory DirectTV remote stuffed inside a radio shack project box, with Sparkfun 4-direction arcade stick and large push buttion directly soldered to the board. I ended up cutting down part of the spring from the button to make it even softer to push.

It was mounted to a Monfrotto articulating camera arm with the additional Monfrotto clamp that connects it to the rail on the side of the bed.

Lastly, after realizing that the box would sit off to the side and the infrared sensor would be blocked, I cut the infrared LEDs and relocated them to an old DSL noise filter (plucked off all the old components) adding a telephone connector to the box and running a wire under the bed. As the remote was likely to be moved often for his care, easy and well known connectors were an obvious choice.

 

The great thing about this setup is that by just mapping the UP / DOWN / LEFT / RIGHT and SELECT button, DirectTV menus can easily be manuvered. 

For instance, throw the stick UP and DirectTV shows you this nice programmable favorites menu which means the top 9 channels are just 2-3 movements + a click away.

The regular channel listing can be seen by throwing the stick down and then holding it up or down to scroll through the hundreds of channels. This was a bit challenging at first, but eventually he got the hang of it.

One later modification was to unscrew and replace the red plastic top of the arcade with a universal leather shift knob. This was easier to grasp and since his grip was impaired, the leather's grip allowed for an easier and more accurate usage. This one is from ModifyStreet and has some nice red stitching and it came with 3 adapter sizes, one of which fit perfectly and snug over the Sparkfun 4-way switch.

 

I hope that this happens to no one you know or love. But if it does I hope that this post inspires you to give them something as seemingly small as regaining the ability to change the channel, it's a huge gift. More photos of the build on this flickr page.

Tools

* A good soldering iron. Very hot, with a tiny tip. I found the small curved tip worked best. Also, some solder and liquid / brush on resin.

* A drill and various sized bits.

* Random sized screws, nuts, and spacers to bolt everything to / inside the project enclosure.

* A glue gun

* Screwdrivers

* A multimeter / circuit tester (optional but useful to test your connections and make sure that little trace on the remote printed circuit board goes where you think it does)

Further Assembly Tips

Soldering wires directly on to a printed circuit board is very delicate. Here's how it's done:

1) Find a nice trace (little lines running around the board that are actually metal underneath), scrape away the plastic or the surfacing for a button with a sharp X-acto knife
2) Prep that area with a little bit of Resin
3) Use a very hot, very fine soldering iron tip, and tin the trace (attach a small amount of solder)
4) Use small copper wire from CAT5 cable and tin that as well, then attach carefully
5) With the wire connected, brush on some Krazy glue. When dry you can pull and it should be solid and resist a small tug.

Weight / size / position:

* As nice as that stand is, the single clamp point is going to slide. Try to make the remote as light as possible, and if possible have it rest on top of the bed or another surface.

* Evaluate how often it will probably be moved around and whether or not it might end up clamped to something else like a wheelchair or armchair.

* Keep in mind that the farther up / out, the more difficult to reach. I kept this box very tight and close to the arm.

Functionality

* I first tested which buttons did what. Luckily the DirectTV menus was triggered by the arrow keys to open. Had that not been the case I was prepared to add another button on the side which would have been the "Menu" button. Test using the TV or appliance with just the buttons you provide.

* The obvious question arrises what about: Power / Volume / Mute, etc. Well, that would make the it a lot more complicated. 95% of the need is navigating the channels. The TV really never turns off, and if someone wants to talk he could just ask them to turn the volume down.

* I didn't do a good job with battery placement as it required the back panel removed. It should be more accessible. 

 

 

   

Warming up to iPhone

I'm on the startup path. One thing you realize when you set out to do a startup where you will initially do all the heavy lifting is that you don't know everything you think you know. For me, I've been training for this for a while, I have web stack burned in to my head and it just drips out of my fingertips. However, what I didn't have was enough mobile to get me by. I've done plenty of web-based mobile apps and mobile web sites but what I plan to do quickly outgrew that and needed access to the phone's hardware.

I have released 2 apps which served me well as learning tools and submissions to the San Diego App Challenge. Win or lose, I figured I'd do these two apps rather than any "hello world" book samples.

San Diego Transit

Available for iPhone, this app is the only native iPhone app that integrates mapping and realtime bus location data for all areas that San Diego MTS covers. I was shocked to learn that such an app didn't yet exist in San Diego, but multiple existed for all other major California cities. See the video below for a walkthrough.

Download San Diego Transit on iTunes:
http://itunes.apple.com/us/app/san-diego-transit/id518207969?ls=1&mt=8

 

What I learned doing this app:

  • UIMapKit, iPhone's mapping framework
  • Loads of strategies for doing databases that live on the phone via SQLite
  • MonoTouch UI development
  • Web service / data connection and parsing (iphone phone-home!)

Street Report

Simply take a photo, share your location, and alert the city to issues. The trick here was getting the data to the city, and using some HTTP POST magic, was able to auto-fill the city's own service request form.

What I learned doing this app:

  • Photo taking / storing / manipulating
  • Low-level HTTP work for iPhone
  • Windows Azure cloud storage from iPhone
  • Location, reverse geo-tagging

Download Street Report on iTunes:
http://itunes.apple.com/us/app/sd-street-report/id518218814?ls=1&mt=8

 

The skinny on MonoTouch

Mono is an open source .NET implementation. MonoTouch, and MonoDroid are .NET libraries that allow for developing native apps in C# on iPhone and Android respectively. Because C# is also the language of the new Windows Phone 7 platform, I was intrigued by the possibilities of less code. I just stuck to MonoTouch

The short version:

I like it. It wasn't no-brainer by any means, but MonoTouch was just the right about of abstraction from Objective-C. I feel pretty confident I can cross-develop for all 3 phone platforms, re-using anywhere from 50 - 90% of the code, depending on the type of application.

The long version:

Since MonoTouch compiles right down to the native objective-c bindings, and it uses the XCode UI development tool, I really felt like I was developing iPhone the way objective-c developers do. In fact, I found I could talk to them and get tips / strategy, or follow along with solutions on Stack Overflow. The best benefit was writing it in C# and getting to use .NET framework pieces, like web service calls, JSON parsing, and a ton of other useful framework pieces we take for granted.

My second favorite thing was how easy MonoTouch can be to do real database work, using SQLite database development. An open source tool called SQLite-NET (https://github.com/praeclarum/sqlite-net). It's kind of like Entity Framework Code-First, for iPhone since it can generate the tables, and makes CRUD operations to that SUPER simple. It's a HUGE time saver and worked perfectly for large data sets / normalized data interactions

Let the fun begin

Now, back to these regularly scheduled programs. 2 Apps published, a ton of new development potential in the vault, and some exciting beta products coming soon.

***UPDATE*** 6/29/2012-  Street Report Wins Grand Prize and City Innovation Award

I'm so grateful to the judges of the SD Apps Challenge for thinking so highly of this app. It won 2 awards, City Innovation ($5,000) and Grand Prize 1st Place ($15,000). The money is of course helpful as I work on my company, Small Steps Labs, but the recognition is equally appreciated. More info from the UT article: utsandiego.com/news/2012/jun/29/tp-winner-fills-hole-in-city-app-market-winning/ 


Narrative vs Gamification

24 Jan 2012 In: Habits, Health, Social Good, Fitbit

I hear the word "gamification" a lot, especially in health related behavior technology discussions. If you sit down with a group of people to brainstorm an app idea, something engaging that gets people to do something positive for their health, it isn't long before you start talking about points / badges / levels / challenges, and on and on. I've shared a few thoughts and enthusiasm before for these kinds of app ideas, but I think there's something more core that we're skipping before we go out and "game-ify". That thing is a narrative.

I recently visited my parents and checked up on my dad's love for his Fitbit activity tracker. Now, my dad is no gadget guy, but he loves his Fitbit so much that he has lost 2 of them and immediately replaced them himself; that's 3 including the one I bought him. He does a good walk in the morning, and tries during the day to get more steps in than he did before. I was expecting to hear some new revelation about how he could get more steps in by doing some other activity / routine in his office day.

"I'm not wearing it anymore." "What? Like, you're just not in to it anymore, you don't care about how many steps you get in?", I asked. "No. I still do my walks, I get steps in during the day at work, but I know how many steps I'm getting in. If I do the walk in the morning and then my normal day, I know how many steps that is. Why do I need to wear the Fitbit to tell me that every day?"

Wow, I was shocked. It was such an about-face. Then he conceded, "I may wear it again, just not seeing the point right now". The something that would get him wearing it again is either a change in his routine that needs quantifying, or, a change in the reason for counting steps. Which got me thinking, if every day my dad pulls up to about 8,000 steps, what is that ultimately contributing to? It's aggregatable, averageable, mean distributable (?), comparable (to me and others on Fitbit.com), and bragable (he's been adding to this for a while). But, it doesn't contribute to a larger narrative that he can identify with. I'll concede though that some people are actively creating a narrative of streaks, bests, and challenges themselves, and for them, the Fitbit (data aggregation) alone works.

Perhaps what my dad needs is something that his 8,000 steps per day is contributing towards. Getting a repetitive high-range step count shouldn't be a bore, it needs to count towards some larger narrative. A game would work, but a game is just one kind of narrative.

Which got me thinking. Most persuasive technology does either one or both of two things:
1) Helps the user tell their narrative. It gives them a structure, an audience, a visualization, etc, of the story of their accomplishments and shortcomings (after all, a good story has ups and downs)
2) Allows users to better consume / understand the narratives of others - Often times, we consume the narratives of others we find interesting, inspiring, or that we feel good about comparing ourselves to.

So, to all those thinking about building apps the encourage people to change, think first about the narrative. Don't concentrate on dashboard view X, data input log Y, cool visualization V, or even game mechanism Z. Those can be part of the way the narrative is filled in, but if your idea of the narrative isn't compelling enough to your users, everything that comes before it isn't important.

For those asking what I'm up to with this new startup -- I'm building a narrative. One that I think people will be excited to do, even if they just do their same step counts every day. I'll be starting with the Fitbit at first. I think they have built the best device so far, and their API is all about getting people to add to the Fitbit experience. They do a few badges / challenge things themselves, but I'd venture to say that they're focusing on making the best device (and ease of use) that inspires a new wave of health related experiences. 

And now, back to work.

 


(from TDD entry on Wikipedia)

 

In the programming world there's this school of thought called Test Driven Development. The idea is basically that if you were going to write a piece of a program you'd start first by writing a test that would verify that it works. Then, you'd write the code and try to get it to pass the test. Let's say it's an adding calculator, so the first thing you'd write is not the code that adds two numbers together, but a test that would verify the results of what you are about to write. Your test is that you'll pass it "1" and "2" and expect the result to come back as "3". Next, you go and write the code that does this. The advantage of this approach is that the test cases drive the implementation. Plus, you continue to use all the tests you write. So anytime you make a change anywhere in the app, all the tests fire as verifiers that you didn't break anything you weren't aware that you broke.

It's a good practice in programming, but I think this is also a great metaphor for startups (and even goals and ambitions elsewhere in life). I've just started working out of a great new co-working space called 3rd Space and have the pleasure of being around some great people, some doing startups, some doing apps, design, marketing, etc. I met a new friend here, Kevin from Fashioning Change, who has solid startup failure and success experience. He engaged me in a great line of questioning the other day. I was showing him a quick proof-of-concept of an app idea that I had made just to test out where the rough parts of developing it might be. I'm integrating 3 services in 3 different programming languages, so I just wanted a quick test if all that was going to work.

Kevin looked at me, excited to show him the programming, and focused me back on the product design. "OK, so back to the idea -- what are your unknowns? What do you need to know in order to say that this is going to work?". Hmmm, I thought about it for a second. I listed a few things that the users would do with this app, over a period of weeks and months. If they did it, that's a success. "OK", he said, so I think you have enough here to test that, don't you?" I resisted a little and let the excuses fly: "The UI is almost non-existent, the color scheme is black on white, the layout makes no sense, the authentication flow is terrible....", I continued. "Well, then just get 5 people you know. If you can't get 5 friends to use it, whom you can show it to and explain it, then a better UI for people you don't know isn't going to help. You just need to test the idea". 

Wow, this caught me totally off guard. In my mind what I was showing him was just scratch-paper quality code. This is the napkin doodle before the sketch, before the color markers, before you open the box of brushes and paints. But he's right, and he helped me define the test cases that my idea needs to pass. If it doesn't, then it needs to be tweaked until it does pass. I made him a deal, I wasn't ready to just release this version, but I'd focus for 2 weeks after the new year to have something testable and semi-presentable. Then, with the feedback, decide the next move.

There are lots of names for this process, and lots of existing wisdom out there to test early and often, but for the programmers and programmer-minded, 'test driven idea development' is the way to think about it. If you have an idea for something, write the test case first, then do what you can to try to pass it. Will your user come back X number of times per week and do Y number of actions a month? Will they pay Z dollars for products A, B, and C? You don't need a lot of code to test that out. In fact, you could even hand-write emails and web pages that mimic what a bigger system would do once you build it out. Or, just a really crude proof-of-concept web app that you're scared out of your mind to release with your name on it. 

 

 

 

They say every good company solves a problem, or scratches an itch, yours or someone else's. The declining health in the country is an enormous challenge -- almost too big for a startup? I think not.

What's broken?

I was catching up with a good friend of mine a couple weeks ago, and among other things, I asked how his folks were doing (I love this family, I'd be a member of their clan if not for a Coleman). He told me a typical story that made me shake my head. His dad is overweight and probably needs to lose 40 pounds. He's been having some issues, amongst them is sleep apnea. Of course, it's pretty serious because your body is literally deprived of oxygen and your heart is put under large stress every night. This, and other ailments led the doctor to do what doctors sometimes feel is their only course correction tool: they scare the shit out of you hoping you'll go home and make a big life change. That's partly because of the system they work within. They can't be with you after you walk out the door. So, perhaps it's what we might label as the "wake up call" technique. It goes something like: "Your weight is going to kill you. You will probably not make it to birthday X, your odds of cancer are much higher, your odds of a hearth attack are high, your quality of life is lower, you won't live to meet your grandchildren, your spouse will be a widow..." Something like that, although I imagine that most doctors don't lay out all of those doomsday scenarios all in sequence.

The hope is that the patient goes home, re-evaluates their life and takes that downer message as a call to action to get on a plan like Weight Watchers or Jenny Craig, or even better, self-starts a rigorous routine of healthy food and marathon training. Yeah, that'd be nice. 

The truth is that mostly what happens is that even great people, people like my friend's dad that I have enormous respect for, don't know where to start. Further, they aren't given the tools to bridge the gap from that startling knowledge (not saying it isn't true, mind you), and the path forward. How do we help people start that journey? How to we put them on a life-long change of small daily habit changes that will divert them from the tragic closing scene just described to them by their doctor?

What has to happen

A lot has to happen to fix this problem. There isn't a one-size-fits-all approach to this either because different people's personalities gravitate to certain solutions over others. In the case of my friend's dad, he's got a lot going for him:

 

  1. Great family and friend support
  2. A physically-active son,  motivated
  3. Good sense of common technology (email, mobile, SMS, maybe even Facebook)
  4. A good job, upper middle class lifestyle (weekends / vacation)
  5. Motivation -- just maybe not a clear path to action.

That should be good enough. So, where's the answer?

Experimentation

Over the next few months I'll be putting my thoughts and my best programming skills towards this. "Health" is an interesting, exciting, cutting-edge space. However, I sometimes feel like I've bitten off more than I can chew. For a computer programmer, the problems that have a concrete solution are the low-hanging fruit. If you want 'Banking System A' to process payment to 'Vendor B', that's more concretely solvable.  

So what about the big players? Should we wait for Google or Microsoft to give consumers the answers to their health? Something tells me that neither is too eager to get back in to health:

It seems like there need to be lots of solutions to this for consumers to choose from. It's the very notion of the startup craze going on right now, that the little guy can disrupt the established brands and markets out there now. The entrepreneur says that things as they are now are not the way they should be and that he/she has an idea to offer to the mix.

My idea is coming along and I can't wait to share it with the world. What I want to do is make health behavior more about the journey than the destination. Diets don't work as big radical changes usually don't sustain. I think people need a metaphor that helps them see the small changes they make start to add up to big ones, and they need to start on that path with a system that is flexible to their needs and their current habits. It's a delicate balance. Push too hard and you'll lose them forever, push too soft and you won't see any changes. 

Compounded in the difficulty is how to problem of how to engage social support. In the era of online self-aggrandizing, how do we get people to collaborate (yes, a two-way street) on their health journey with other people using digital tools? I see lots of people posting their athletic feats to Facebook, but hardly never their struggles. 

What I'm Not Building

There are quite a few products out there that have already scratched some of the itches people have had. Here's a list of what I'm not building:

  • a health dashboard
  • a medical aggregator
  • a food journal
  • a fitness logger (although it's a part of it I guess)
  • a share-to-facebook health app (although nothing will be stopping you I suppose)
  • a diet and fitness community site

What I Will Be Building

  • something fun
  • something that conveys health is the journey, not the destination
  • something that rewards collaboration
  • something that rewards growth and mastery
  • a sense of accomplishment and awesomeness
  • an experience that adapts to the tools you have & use
  • something that works well with cool devices like the FitBit
  • something people my age would like, and that people my parents age would too

So, with that out there I'm going back to the drawing board. I can't wait to share what I come up with and along the way. I hope many of you get involved, either as beta testers or just to listen to me babble about ideas over a cup of coffee. Speaking of journeys, this whole startup thing is going to be a crazy one. Thanks for following along! 

Where do I get my coffee today?

9 Dec 2011 In: Startup Life, Habits


Today is my first day not having to go in to work. It's Friday, and I got up like I did yesterday, got dressed, but yet did not do my normal day. Nor did I do a day similar to any day I've done in... well, ever. It doesn't feel like the weekend, but I'm not going to work. The sensation is odd.

Next, where do I get my coffee? Sure, this might be a trivial thing for some, but I had my weekday coffee place (Cups cart at Calit2, Peruvian Organic was the best), and then I have my weekend coffee (at Coffee Bean), but where do I get coffee on a day like today? I was already planning to go to UCSD to go to the gym, maybe I could go to my favorite coffee cart one more time. No, time to move on.

It took me about an hour to figure out that all of this relates back to what I'm going to set out to do -- create software that changes people's habits. Having myself done the same routine for the last 2 years, it's tough. I had to conciously force myself to abide by a new model for the day, one which included an 11am workout. Being there was odd, partly because I've been struggling to keep a gym routine, but partly because I don't think I've ever been to the gym at that time of day.

All of this is unsettling a bit. I am home, but uncomfortable with what I should be doing right now. What's more unsettling, is that I'm only 28, and having been a fulltime employee has been my norm for just the last 6 years. Nevertheless, it has me really accustomed to habits and routines that I now may have to learn to undo. But what about other people, who have 20 year habits? If I'm thinking through tools to help others change small, but routine health habits, how do you fight such a strong sense of comfort / familiarity / routine? My guess is to replace the missing ones. 

Tomorrow is the weekend. I'm going to use that opportunity to plan out for Monday's habit-breaking crisis. I have two days to find a good bag of coffee, the creamer that I like, and start a new habit to make coffee at home. Why? Because it's cheaper, it's something I can get behind, and a new habit I can embrace. 

Lesson learned. New habits, hard, breaking old habits, much harder.

I have just a few more days of full time employment before I start out on this great new adventure. There have been a few surprises in the last couple weeks having announced my next steps:

1) No one has been skeptical, at least to my face. Ever since Mark Zuckerberg, no one dares doubt the computer-nerd-turned-entrepreneur. Where my parent's generation would have looked down on this new business-minded youngster for 'selling out' and being 'part of the establishment', it seems almost everyone now embraces and even celebrates it. I'm paraphrasing a bit from a great New York Times article about our entrepreneurial generation: http://www.nytimes.com/2011/11/13/opinion/sunday/the-entrepreneurial-generation.html?_r=1 

2) Opportunities are all around. Since I announced I was leaving full time, I have had 1 full time offer, 3 freelance gigs, and a teaching position offered to me all around apps and health. Turning stuff down is tough, and I haven't turned it all down, but I won't be taking anything that might crowd my creative forces. Then again, I do need to plan for a few breaks. The brain is a multi-tasker after all.

3) I haven't even started yet, and I've already spotted the signs of doubt / fear pop in to my mind. Building a business that asks people to spend minutes of their life using it, or even paying hard earned money to use, is opening yourself up to them. You're saying "here are my ideas, wrapped in my ability to execute, and your life will be better for engaging with it." Even scarier, is the notion that you launch early to get feedback. Get it out, just bare bones without all the frills. Scary. I came across this article by James Altucher just in time: http://techcrunch.com/2011/12/03/how-entrepreneurs-can-increase-productivity-by-500/ My biggest take-away from that article is that all negative thoughts, speculation of failure, are not based in reality. These are thoughts that are not useful. If I'm going to go for it, I need to go for it, and use my brain cycles to propel forward.

4) There isn't just one idea and one shot. Possibly the most interesting thing so far is that the only thing I've had to explain about my plan is that I'm not afraid of the first idea not succeeding. My in-laws started up too, with a candy sale business, travel business, baked breads, all before they came to realize their winning business which was a Mexican bakery in East LA. My grandfather also experimented before he eventually created a fabric business in LA that eventually took off. That same old-world business mentality should be followed in the internet entrepreneur world as well. Keep working at it until you find something people like. Tweak (or "pivot") what you're selling until you find what works. 

But those are all the surprises. Nothing has changed about my resolve. I'm excited to link my creativity to my financial success, and to build some thing(s) that I believe in and I can call my own.

So, what's the plan? The plan is to start out and make a plan. Then, the plan is to build it. More on that in the next installment. 

To friends and family -- thanks for the support. 

 

I Quit My Job Today

17 Nov 2011 In: Startup Life

Today, I gave notice at work that I'd be leaving. I have always wanted to take the plunge and take a stab at founding my own startup. I have so many ideas and no time to do it in. I've been working on side projects nights and weekends where I can, but it is almost impossible to make progress in large enough blocks.

I have a few ideas I'd like to pursue. In 2 weeks I'll lay out a game plan and make a go of it. I'm treating this like a writer who sets out to start their first book. I'm not sure where I'll end up but I'm excited to start the process.

I have a few goals in mind:

 

  1. Link my creativity to my financial success
  2. Work on something I am passionate about
  3. Blog the experience
  4. Live this experience with no regrets.

My dad tells me I was always a cautious kid. It's true. I take risks but not usually without lots of calculation. This, however, is a big risk, but I feel very excited to do it. I have an amazing wife who is supportive, and we've been saving a while to make this possible, but she'll be the rock throughout this journey. I can't wait to get started! I'll be blogging regularly about "starting up". More details to come soon.

As for what I'm leaving behind in my current work, all I can say is that I am very grateful to have been there. We built a great health behavior product, Three Two Me. I was lucky to get to lead the development team, teach students, mentor one to a full time staff, and work with others who stuck around despite low intern pay because they were enjoying it and we were teaching each other and working towards a quick but substantial product release. I'll miss the researchers that taught me a lot, and my students and fellow staff at the Center for Wireless and Population Health Systems.

 

Rise of the Mobile App Builder Tool

8 Nov 2011 In: Mobile, Web-Mobile

I've been hit up recently for a lot of freelance work for mobile app development. Most are simple apps, needing a quick turn around and a cross-platform solution. I told a friend of mine a few months ago who was relaying one of these freelance gigs "It used to be that you had to hire a developer if you wanted to make even a simple website. Now there are a ton of tools that let people make their own sites. It seems like whomever figures that same thing out for mobile apps is going to make a pretty penny." I even contemplated and sketched out what a simple drag-and-drop jQueryMobile-based (with the new jQueryMobile Theme Roller) tool might look like. Well, I'm glad I didn't invest too much time in to that, because other people saw the exact same thing and went for it. Here are 4 mobile app building sites that I've come across just in the last month. Feel free to add more if you come across them.

 

UPDATE 11/9/2011: I've added Mobjectify to the list having been introduced to it by the creator.

iBuildApp - The first I came across but probably the most constrained to a template. They offer their service for free actually and seems like they make money if you need the assistance getting the app on to the iTunes store, of if it is a mobile web app they charge for hosting. Some how they are also able to build out native apps, again, you have to do the leg work getting your app on to the app store

 

Application Craft - They have an interesting take on this space by trying to be the simplest, all-in-one application development tool. The apps created in Application Craft are designed to work on all screens, desktop, tablet, and mobile using what I assume is CSS progressive enhancement techniques. In addition, they also let developers get in there and modify the underlying web code. The thing is, I think in an attempt to completely simplify, they sacrifice the UI experience on mobile, which is the hard to reach itch that most people have. I'm not really a fan of jQueryMobile on desktop screens, the UI feels wrong. The development tool reminds me of Visual Studio or Dreamweaver, which are not particularly inviting to non programmers. That being said, I'd consider using it and just design for the mobile and possibly tabled screens only.

 

 

Tiggr is another web-based IDE app obviously constructing a UI using jQueryMobile. They seem to be trying to tackle the whole app development experience even trying to tackle data service consumption. So often when people ask about creating an app, they are really asking for an app that connects to a web service of some kind. That's the same evolution that "websites" went through. First it was a company needing a 5-page, static content site, then everyone seemed to want rich data-driven capabilities. Tiggr is trying to pounce on that space first.

 

 

Proto.io - Ironically, it would seem like some of their UI controls are the most polished / most native-looking of the bunch. Yet, they are calling their finished products "prototypes". Go figure. From what I can tell, it's  a really polished experience from start to finish designing and testing an app.

Mobjectify is another tool aimed at the prototype space and provides a hosted space for a prototype to be edited by multiple people and shared via link. I followed the tutorial and also played with the tool free form and found it to be intuitive for someone like me, who knows about jQueryMobile and how that all works. I think a non-techy could build a prototype, but to accomplish the demo tutorial the user is getting their hands dirty with links, HTML5 storage, JSON stringification, and form tag posting. At that point, I don't see the user who could deal with that needing a web-based tool for the easy stuff, so I'd suggest Mobjectify try to either make those tasks easier for normal users, or emphasize the drag-n-drop capabilities more to the target audience (non-programmers or people collaborating with programmers).

On a side note, they did take the initiative to create a custom theme tool before jQueryMobile rolled out their own that looks great and is no more complicated than it needs to be.

Any others I missed worth taking a look at? What do you think of do-it-yourself app creator tools for consumers?

 

I like the web.[configuration].config replacement technique that is now available in Visual Studio, and for most files, you can now get this functionality with another plugin called SlowCheetah. However, SlowCheetah can't work with plain old .txt files like robots.txt. If you're like me, you really just need to swap out some robots.txt file that says "index my site" with another that says "don't index, you never saw this staging server". In this case, the solution is simple enough -- Pre-Build Event. Do the follow:

1) Right-click on your project and select "Properties".

2) Select "Build Events". Here is where we are going to add a single magic line.

 

3) Here is where we are going to add a single magic line which copies one of my versions to the root as robots.txt:

copy $(ProjectDir)Content\robots_txt\robots.$(ConfigurationName).txt $(ProjectDir)robots.txt /Y

Note that I am storing my different robots.[ConfigurationName].txt versions in /Content/robots_txt - you can put this anywhere that make sense in your project just change the first argument of copy command.

 

4) That's it! Change your configuration and then build the solution. You should see the different robots.txt file in your solution.