Sam Soffes

Web App vs Native App

Posted in android, development, iphone, mac, mobile, and web

This is the age old question for app developers. To state my bias, I make a living creating mostly native app and the occasional web app, but I greatly prefer working on native apps. I'll be referring to iOS devices for all of this, but it applies to the Mac (sorta, see the end), Android, and almost any other platform.

We Can All Agree

We can all agree that native apps have a much better experience than web apps, especially on slower devices (like the iPhone). Pull up your contacts in your iPhone and flick through them really fast. See how smooth that was. Now pull up any website and do the same. Not so smooth. Checkout Cover Flow in the iPod app. Amazing, right? Show me a website that does that that smooth. You can't.

The reason that native apps greatly out perform web apps is that there is a lot more processing power used to render website than it is to render native apps because they are... well, native. Websites need to run through some sort of engine, in this case WebKit, to convert them to something that can be used by the device.

You don't see games like Angry Birds or apps like Twitter for iPhone in your browser, because they simply can't make something that elegant and preformant. Partly due to some of the technologies not being available to web developers and partly due to browsers not being able to handle that much stuff efficiently.

So let's all agree that native apps are ideal over web apps. I could go on and on about this, but I think you get the idea. (If you don't agree, I think you're wrong and would wonder why would would ever use or want to make native apps. You should probably stop reading this and point your beloved browser elsewhere. Just kidding, but seriously.)

Why?

The main question I have for anyone asking this question is "Why do you want to make a web app over a native app?" There are usually two answers that people give me:

  1. If we make a web app, we won't have to make it for each platform.
  2. If we make a web app, we will be able to develop it faster.

Notice that it is never "If we make a web app, it will be a better user experience for the user." because that is never the case. You are trading user experience for quicker development time and platform flexibility. For some, this is ideal. In that case, make a web app.

In my experience, 90% of the time you want the best user experience possible. I want to make my users happy. I think providing them with the best user experience is the best way to do that. (If you are trying to make money of your app, more happiness = more dollars.)

Conclusion

I would rather trade development time and platform flexibility for a better user experience because I am passionate about making the best apps possible for my users.

Disclaimer

I wrote this in the context of mobile development. I think this still applies to the desktop, but it is a very different space. Most users don't buy apps or even understand that concept on the desktop. Web apps are great for most cases. Obviously you can't edit music or video (effectively) in a browser. Stuff like that will probably always be a "native app."

Also, there are lots of other pros and cons for both that I could have went into, but I decided to keep this short. With any other pros added to web apps, my conclusion still stands.

Thoughts On Writing Code For Money

Posted in development, life, and thoughts

So writing code is a very intimate thing. You spend hours and hours thinking very hard about a problem and then finally solve it. Once you do, you work out all of the bugs and such. After tons of hard work, you finally have something you're proud of that can be released or used with other code someone else has worked very hard one.

This is a special thing to me. I really enjoy this process. Everything about it is great. The problem solving, the perfecting, the design, everything.

I don't know how I feel about selling this. I mean, I just labored away on this code and I'm really proud of it. I understand that I can sell the rights to someone to use, which is fine. It just feels wrong to have worked on something for a really long time and then someone else owns it and I'm not allowed to do anything with something that I made. I know that the money is the trade off. It just feels like I made a baby then sold that baby.

I know that this is how I make money, but I don't like it. This is why I started open sourcing as much as I can so I, and the entire community, can benefit from my hard work.

I don't really have a conclusion, just that I'm going to try to avoid it as much as possible. There's a lot of inner struggle with all of this. Just thought I'd share my two cents.

On My Own Again

Posted in development, freelance, life, and open-source

So if you remember, I wrote a blog post about a year ago about life and such. I quit my job and then freelanced for a bit. After doing that for a bit and hating it, I started working at Tasteful Works. It's been a good ride here at Tasteful Works, but August 31 is my last day. Still friends with those guys. Quality dudes.

What I'll Be Doing

I'm already booked for the next 3+ months with a lot of iPad and Rails work. It's for a client or I'd say more. It's a really cool project. After that, I'll be doing looking for some contract projects and work on my own stuff.

I plan to focus more on fun open source projects now that I'm my own. I already have a bunch of stuff started on my GitHub account, but more on that later. It will also be good to have more time for music and life in general.

I've already gotten a few job offers. For now, I plan on sticking with working for myself, but who knows how long that will last. This seems to be a bit of a cycle: keep a job for a year-ish, freelance, new job, freelance, etc. I'm hoping to keep working for myself for a lot longer this time.

What About...

Double Shot - No idea. Tasteful Works owns all of that code. Hopefully it will get released eventually. It's some of my best work.

TWToolkit - Check out my forks: SSToolkit, SSOAuthKit, and SSZipArchive. The Tasteful Works versions will remain, although I won't be working on them anymore.

Countdown Maker - Countdown Maker and Stage Time will remain Tasteful Works products. Kinda hate to see them go, but oh well. Hopefully they will continue to be maintained.