Ramblings on Cross Platform Mobile Development (cordova/phonegap)

587b434da5dc5edd81412e36f88df60e3e37fac4ff6ecd8c2b22ff5586f0c0ee

It seams almost like a dirty word right now. Cross Platform Mobile Development, “eeewww like phonegap”? Why yes.

It’s been about a month or so since I decided to quit my job and do freelance cross platform mobile development full time. It has been fun and challenging, and I thought i’d share some of my experiences thus far for others who are interesting in doing the same.

Bored of Desktop
My background has been in web development. Focusing primarily on the front end. Javascript and me are good ol’ pals. My most recent stint was at nba.com where I helped build a new front end for the site, and setting up a theming architecture to allow for better code reuse on the front end. It was great, but nba.com aside, I was starting to get get bored of standard desktop development.

Mobile development for some time had always peeked my interest and the ability to create experiences that are more than just a mouse click was really appetizing. I had played around with titanium and phonegap / cordova, and build some personal projects on them. I was impressed how quickly I could stand up a working app, that performed well against native apps. After some research I decided to use cordova for development.

Why Cordova.
I’ve played around a good bit with titanium and was really impressed how easy it was build apps that would be “native” at the end of the day. The apps performed well, and overall the community seamed pretty cool. Though long term I’m just not sure if this is the direction we should be focusing our efforts.

Why build another api?
Titanium in a way I see as duplicating efforts that are already happening with cordova. Now granted I know titanium compiles to native to be better performant, but largely I think that argument is no longer relevant, vs browser performance. All the work, time in my humble opinion should be focused on building one accessible api that we all use, for one of the most common way people use computers, through browsers.

Lets all learn C!
It dawned on me other other day that if we approached desktop development the way mobile development is, it would seam some what ridiculous. Just imagine having to build your site on c++, and objective c. Just so people on those devices could view it, crazy right?  But largely thats how mobile development is approached, without much thought otherwise.

There will always be native
I know that were never going to be done with native development, it’s just par for the course. Some applications are just better suited for native support especially when you are doing some crazy tweaking on lower level stuff. I’m all about using the right tool for the job. But I do think that for the other 90% of mobile applications, there isn’t a need for native anymore. 

The mobile browser is calling…

Advertisements

Prevailing Wisdom of the Day

windwippedwaves

People who “worry their prayers” are like wind-whipped waves. Don’t think you’re going to get anything from the Master that way, adrift at sea, keeping all your options open. – James 1:6

About 8 months ago I was getting ready to launch my startups’ main product and begin marketing it. I had been working on it for sometime (about 4-6 months). Then shortly after launch, after seeing some other very successful launches come out of some local incubators, I decided to cut the cord and start from scratch. I decided that I needed investment and that I needed to get into the local incubator to really make sure I was launching properly.

I was worried. Was I taking the necessary steps to drive growth? Did I have a marketing plan, for facebook, twitter, instagram, and pintrest? How much investment should I get? 50k? To little? Maybe 100k? What incubator has the best track record? They say more co-founders are better… hmm wonder where can I rope in 2 more co-founders? How do I manage growth once it comes? What type of database do I need to handle the supposedly tens of thousands of users that will be using this application?

Needless to say I was bit all over the place.

Now granted the quote I mentioned above is bent more toward prayer, I think it brings some valuable insight into how we should handle our selves in business and frankly the rest of our lives.

Mainly, Don’t worry. Pick a focus. Be confident.

When we allow worry and the fear of failure hold our focus we lose control. We focus on what others are doing instead of focusing on what matters to ourselves, often sacrificing our long term goals to make sure we are doing the “right things”.

Fix for cordova error “Error: Cannot find module ‘graceful-fs’

This is a simple issue but annoying enough I thought I’d mention it. While working on a mobile project today I couldn’t figure why cordova commands weren’t working. I had recently updated my nodejs and npm versions and cordova started yelling at me.

When running any standard cordova commands like:

cordova platform add android

I would get an lovely error like so.

Error: Cannot find module ‘graceful-fs’

After some searching around and head bashing, I decided I’d reinstall cordova, like so:

sudo npm -g install cordova

Such Amaze! It works 🙂

9 Tech Hippie Backpacks. (Help me pick the best one)

brownawesome

One of the things recently I’ve been lamenting over is my need for a new backpack. My current backpack harkens back to many of my days of skateboarding. Its great, lots of space, flexible and durable. Though with my latest move out of corporate america and into the startup world I need something that I can comfortably walk into a business meeting with.

What I have now:

My Current Backpack

As you can see its a little dated and I need an update.

My friend and I were looking through some awesome packs this morning, and I thought it would be great idea to ask the community and see what your experience has been, and what your favorites are.

Before we get to the list, here are some guidelines:

  • Flexible to be both a Personal and Professional (Walk into a meeting with it)
  • Around 100$
  • Minimal, and light as possible.
  • Comfortably hold 15′ Laptop, ipad, and notebook
  • Messenger/Over the shoulder bags are out, as they are just not great for your back.
  • Durable, can handle everyday use without falling apart (more than just pretty fabric)
  • Muted color palettes, pastels, professional

The List

With that said, lets get into it! Comment on your favorite, or let me know if one should be added to the list.

1. Herschel Supply Survey Backpack

hershels

2. Makr Farm Ruck Sack

3. Legion Alliance

4. United By Blue

5. Burton Taylor

6. Dakine Travel Pack

7. M.R.K.T. Carter Felt Backpack

8. The Framework Backpack

9. e-Canvas Backpack

Well thats the list I’ve compiled so far. Let me know your likes, dislikes, and and any I should add to the list. Once I get some solid feedback I’ll update the list accordingly.

Enjoy!

Snow cones or Popcorn? Simplifying your business.

The other day I was walking down the street with my wife, we stopped in a local store that I had walked by probably a dozen times before and never been in. One thing I  realized, I never remembered their name, logo or what the heck they do. Odd. We walked on in, and It was really hard to tell what they did. It did look like they sold ice cream and some other stuff, but I wasn’t quite sure. 

A young lady greeted us and asked us if we had been there before and we proceeded to get a 60 second spiel about what they sell some sort of combination of snow-cone concoctions / ice cream, homemade pop corn and some other things plus a price list that was making my head spin…. Now I was on the opposite side of the spectrum, feeling overwhelmed with options. It seamed like a complicated task just to order some dang snow cones.

We left.

I can assume why they are probably doing both snowcones and popcorn, they’re both high margin products that are relatively easy to make. The problem is, there inability to choose something showed throughout the whole business. They wanted profit but didn’t want to simplify. They wanted to make sure they were reaching all types of customers, and didn’t want to miss out on an opportunity so give them lots of options.

Wrong.

Think of some popular restaurants that have made there way into established markets. In-out burger, five guys, chipotle etc.. All boiled down things to the essence of what they were doing, and gave people only a couple of options within that market. These companies are doing amazingly well and people love them.

Startups suffer the same thing.

This made me think of how in the startup world we often take the same approach. We’re afraid we won’t get customers so we add every feature possible we can. We get caught up in building cool features, making new things, using the latest in tech. What we end up is a 800 pound gorilla of a business and a direction that often lacks focus. You have to simplify and find your core, otherwise you will get ripped apart for trying to go to many different ways.

Snow cones or popcorn? Simplify till it hurts.

Whats your choice? What are you going to choose? Snow cones or popcorn? Don’t try to be everything to everyone. Once you simplify things, then simplify some more. Break things down. It will be painful, it will sting, but the pain will be much less than the cost of your dying business. 

 

 

Time management as Entrepreneur

http://www.youtheentrepreneur.org/entrepreneurship-stress-comes-freedom

..you make your own hours and that you have a lot of flexibility, it can actually be detrimental to your growth, as you’ll probably will opt to work even longer than what you usually would at a “normal job”.

Jeffery has some great thoughts on freedom as an entrepreneur. I have struggled with many of the things he mentions. Overworking my self being one of them. I’m still working on that “life balance” thing which more often I’ve heard is more like a dance than anything else. I’ve realized that perfection is not the goal in time management but excellence, and those are two very different things. Shit is gonna happens, things break, things go great, then things explode. It’s all in how you dance with the time you have.

I Built a Table Instead of Building an App

Image

After Christmas I had an extra week off pretty much of pure personal time (i.e no commitments). I decided to use this time to do something fun and meaningful, and one that didn’t involve code. It was a hard decision honestly because I enjoy building apps and useful tools. Though I felt like if I didn’t step away for awhile and do something else I wouldn’t really feel like I was able to rest and get my bearings for the next year.

So it was decided, I was going to do something, not coding related. What to do?

We recently moved into a new apartment, and for my office I was using fold out card table as my primary workstation. I knew it wasn’t ideal and I had been searching for a table for some time for this room. The problem was that I couldn’t find any tables that fit my criteria:

  • Small to Medium Size
  • All Wood
  • Light Wooden Finish
  • Under $200

Most of what I could find were in the $500+ range, and was either to small to share with 2 people or to big, more like a dinning table. Then the thought hit me, “Why not just build a table yourself?”, perfect idea! Except for the fact I’ve never build any furniture in my life… Sounds great to me!

Getting Started

In order to make sure this table would actually get done and look good, I needed to make sure it was simple to build, but still looked great. After a little searching I found set of table and chair plans that looked promising.

http://www.morelikehome.net/2012/10/day-30-build-2×4-craft-table.html

Adimensions-2chair

It had a nice rustic feel, didn’t look too complicated and was made completely out of 2×4’s. Done.

Diving in

As I started to plan how to build this thing, I quickly realized that I had almost no tools needed to build it. I had some basic tools (hand screwdriver, hammer, measuring tape etc…) but nothing to cut the wood, or to screw it together. So I called up a good friend that I could remember had power tools; Success! he had a table saw and power screwdriver, the main things needed to pull this thing together.

2013-12-31 11.16.31

After some light planning and a trip to Home Depot we were in business. With help of my friend we were cutting wood in no time. By the end of the first day we had measured and cut all the wood necessary for 1 table and 2 chairs. Now the fun part, putting it all together.

For the building phase I was on my own, and I noticed as began building, doing this by my self was tough. I had no real workbench, I was pretty much sprawled out in the room putting it together. I needed hold things so for the wood glue and for me to screw things together, I decided to head back to home depot for a c-clamp. The c-clamp I have to say was by far the most useful in building this table, It was so handy being able to things together as I screwed into.2014-01-01 20.07.37

I decided to take a different route than the directions though and ended up using screws for everything. For some of the joints this was problematic as I had to use crazy long screws to drill through the 4 inches of wood to secure the joint. They recommended using a handy tool 2014-01-02 10.27.22called a kreg jig for the joints but I decided to be a little cheap as they cost about 100$ and my budget was $200 for everything.  In the future I will probably pick one of these up but this time around I decided to forgo buying it. It made securing the joints a little ify at times but in the end worked out fine. I also made sure to sink the screws into the wood so I could cover them with a little wood putty later on when I decided to stain it.

The Finished Product

After about 3, 6 hour days, much struggling with screws, countless trips back to the home depot my rustic table and chair combo was complete! Overall the cost was more than I initially expected but still within budget. The main things that cost me extra in my case was screws, I bought too much wood, and ended up buying a c-clamp. These things were fine as I knew I would probably be a little off, so it wasn’t to much of an issue. Though a little better planning might have avoided the extra expenses.

2014-01-30 08.48.27(The lady and I enjoying some coffee over our new table!)

Total Cost: $200

Some Lessons Learned

  • Buy a C-Clamp. This is one of the most helpful tools when woodworking by your self. Buy one you’ll need it.
  • Tools are expensive. I underestimated the cost of tools when getting into this project and the space to house them. I live in an apartment and we didn’t really have a place for lots of tools to be kept so buying a bunch for the future wasn’t necessarily an option. In this case having friends with really nice tools saved me a lot of dough.
  • Better Planning. I’m pretty sure i went to home Depot at least 15 times because I ran out of something or needed a tool to complete the job. Lots of wasted time and gas here. Part of it is because I’m a newbie to woodworking so I didn’t know what I didn’t know, but a little better planning would of saved some time.
    Hardware folks are you friends! Don’t be afraid to ask for help. I was a super newbie at this and asked some probably obvious questions, but everyone I talked to seamed to really care and wanted to make sure I knew how to move forward.
  • Let your wood dry. I picked out some nice un-treated wood from the store, though I underestimated how much the wood would shrink. In some spots held by wood glue its coming apart a little bit, and the boards have some larger gaps than originally planned. Ideally I should of let the wood dry for 2 or so weeks before I started.

 Also as a side note I modified the plans a bit to fit things to my liking. I lessened the width of the table to be smaller. I screwed the table top together via the sides and used wood glue with metal brackets (see photo above) to hold it together, that way I didn’t have screw holes showing in the top of the table.

Ultimately I had a lot of fun and accomplished something that I set out to do. Which that in itself is worth everything.  This project gave me a lot of time to just de-stress and really just not think about programming for a week. It really helped me go into the year with some better focus, and to re-calibrate on what was important. I plan on making a habit of doing something like this every year. Its nice to do something with my hands other than mashing plastic buttons all day 🙂