James Terry - Software Developer

James Terry is a software developer with over twenty years experience creating software in a wide variety of environments. Past clients have included large companies (Amazon, Sony, Nike, Walmart) and many more modest in size. Available for hourly and project consulting.

image

Free Initial Consultation

Call 646-586-3095 or Email jdt@jamesdterry.com

Plumbing for (some) funJuly 23, 2020

Welcome to part two of my series comparing and contrasting the many ways you can develop a mobile app. (Here’s part one if you missed it.)

As a reminder, I’m developing an app called Ok Car – a classified ad app for buying and selling used cars.

In this post, we'll spend some time reviewing the wireframe I put together in part one. We'll also setup the "plumbing" necessary to allow us to just focus on the mobile application itself in future installments.

Besides a few typos, the wireframe survived review mostly intact. Reviewers noted we probably should have color as a search criteria (being red-green color blind myself I have a good excuse for missing that). The create listing screen was missing some fields and I needed to handle a few more states (like before a listing is approved and after a car is sold). Taking all those changes into account we have a version 2 of the wireframe here.

Now on to the plumbing chores...

more...

50 ways?July 12, 2020

Why not listen while you read 😉.

Choosing how to implement a mobile app has become reminiscent of a Paul Simon song, but rather than "...slip out the back, Jack; make a new plan, Stan; you don't need to be coy, Roy" you can "code native, David; use a declarative style, Kyhle; or code cross platform, Norm" to name just a few. (Ok, my song writing career has a long way to go.) In fact, here is a list off the top of my head of the ways you could code an app:

  • Native iOS
  • Native Android
  • Native iOS using SwiftUI
  • Native Android using Compose
  • React Native
  • Flutter
  • Wrap a web application (Cordova and alike)

And there are permutations of each of those choices. Should you use Swift or Objective-C for iOS native applications? Kotlin or Java for native Android applications? Not to mention that the list of languages and frameworks for a wrapped web application is probably approaching infinity. And now doing a web search (not just off the top of my head) there are even more – Microsoft’s Xamarin (I should have remembered that one), Salesforce based app, Amazon’s Honeycode just to name a few.

In the end, we probably could get to 50 ways to code our mobile app, but luckily for the author and reader we can focus on a shorter list and get our app (and blog posts) done and set ourselves free.

more...

Hey Steve, no assembly language?May 03, 2010

By now I'm sure you've seen and/or heard of Apple's prohibition on using anything other than "approved languages" when developing for the iPad/iPhone.

Here's the infamous text:

3.3.1 - Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

First off, no assembly language?!? What if I want to go right to the metal and make sure my App is as small, fast and power preserving as possible. Surely this is just an oversight. And I'm being only a little facetious. The first version of the AI code for my Cherokee Checkers game on the iPhone was too slow when written in Objective-C. I rewrote it in straight C (saving lots of object creation and destruction) and that speed it up significantly. But I was looking at moving it into assembler if needed - I'd like to see the objection to that.

In the end these kinds of arbitrary rules that are only driven by Apple's monopolistic tendencies will likely come back and bite them. Of course they can just drop it when it's convenient for them, so I suppose it might even make business sense. It kind of brings a soap opera feel to the whole mobile development scene.

iPad, What is it Good For?April 07, 2010

Just think of the old Edwin Starr tune (http://www.youtube.com/watch?v=2pIqxuygWwM) and sing along "iPad, what is it good for - absolutely something".

So far, yes to games, no to browsing while watching TV - can't have IM or another app running and it's a real pain to page down with a swipe after a while. Of course I'm comparing it to the Mac Air, which actually feels lighter. And with a notebook, I can close it and feel like it won't suffer any dog or kid damage. The iPad screen is always out and vulnerable.

Book reading is yet to be determined; it's a lot heavier than the Kindle. I hope to try that out later tonight.

It sure does look purty though.

iPad ThoughtsFebruary 01, 2010

The waiting is over and the jumbo iPhone is out. The name may be a little disconcerting to some women - http://www.youtube.com/watch?v=lsjU0K8QPhs but I suppose we'll all get used to it.

I'll start by saying I do intend to order one (after all I will be writing software for it). Apple is positioning it as a device that will fit into a niche between laptop and a mobile phone. That's the $64,000 question, is there a niche? Is this the right device for that niche? I'm actually typing this on a Macintosh Air laptop while sitting in front of my TV so I'm right on one side of the niche. The tech pundits are complaining about the lack of multi-tasking and the tethering to iTunes while the Apple fans are saying those things don't matter. As with the iPhone I think software will be the difference. (Ok, maybe I'm a little biased.) Having a developer ecosystems already trained, excited and in place will mean any App anyone could need will be available. Unleashing the ingenuity and creativity of thousands of software developers should be the goal of any platform creator. It worked pretty well for Bill Gates with DOS and Windows and I think Apple has replicated that winning combination with the iPhone, no reason it shouldn't keep things going with another device in the family.

I still think it's mobile phones that will cut into the iPad market the most. It's hard to beat the convenience of a device in your pocket or purse. When will a pad make sense? It might replace the laptop you use while sitting in front of the TV (what, you watch TV without a laptop?). Certainly for some mobile jobs that need more screen space it will be a good fit, I can see the iPad being big with Doctors for example. Maybe it doesn't seem that large a market, but just wait till all us software developers get one in our hands. We'll figure out a way to make such a cool gadget useful.

Getting your head into Cloud ComputingJanuary 25, 2010

As engineers we may think our world has nothing in common with unnaturally thin models wearing odd shaped outfits preening down a runway in Paris, but as strange as it may seem technology is a susceptible to fads as any other area of human endeavor. Cloud computing is currently all the rage in our world, as anyone glancing at blogs, book and newsletters can tell you. But does cloud computing deserve the attention from the paparazzi of the hi-tech press? Or is it just a face lift covering up a paradigm who's time has passed? Let's take a look.

First, let's try to define cloud computing. As Supreme Court justice Potter Stewart famously said about a much more prurient subject "we know it when we see it". It involves moving storage and computation from a local desktop PC over the network to a server. But that's not quite enough of a distinction; the Internet has been going strong for years doing just that. I think more precisely we can view cloud computing as providing storage, computing and networking as a service that can consumed at a variable rate. It is the "utility" nature of the resources provided by cloud computing that distinguishes it from the plain vanilla client server model.

more...