*Coder Blog

Life, Technology, and Meteorology

Category: iPhone

First Impression of the iPhone 6

I’m one of the 4 million people who pre-ordered a new iPhone 6 this past weekend. It arrived earlier today, and I wanted to share some observations after using it for the first couple of hours.

This is a big upgrade for me. I’m upgrading from an iPhone 4, which feels absolutely ancient. At one point, I’m sure it felt amazingly quick, but not anymore. (I have to remind myself that someday this iPhone 6 is going to feel just as slow.) To give you an example, sometimes my iPhone 4 was so slow that it missed incoming calls because sliding to answer wouldn’t happen before voicemail picked up the call. Needless to say, the new iPhone 6 is crazy quick in comparison.

Like most people, I was torn between ordering the iPhone 6 or the 6+, sight unseen. There is a pretty big size difference between the two, and some functionality is lost by choosing the 6. I made some cardboard cutouts to help make my decision easier. The cutout for the 6+ felt way too big in my pocket, so I decided to go with the more comfortable 6. Now that I’m using it, I’m really glad I didn’t order the 6+. The 6, even as the smaller option, is so much bigger than previous iPhones. This is especially true coming from an iPhone 4. I have space for 2 more rows of app icons on each home screen, which is great.

One-handed operation is pretty tough though. My first instinct when trying to reach the top of the screen with my thumb was to shimmy it down in my hand. Well, that’s a big mistake, because I almost dropped it while doing this. So then I tried using the new action that Apple built-in, to double-tap the home button to shift the screen contents downward. This helps a lot, but it’s going to take some time before I have the muscle-memory to do this without thinking about it. I’ll probably use it two-handed most of the time.

As an app developer, I think we are in a bit of a transition when it comes to choosing the best location to place often-used buttons in the user interface. Up until now, the top navigation bar was a good location to put navigation controls. However, with devices becoming larger, that may no longer be the case. Instead, it might make more sense to have a more prominent toolbar on the bottom of the screen. I know I’ll be spending a lot of time thinking about this over the coming months.

One last note on the size I would like to bring up is with respect to the depth. It’s amazing to physically grasp just how thin the iPhone 6 is as a phone. It’s almost difficult to pick up off a table because there isn’t much depth to hold onto. Once you are holding it though, it feels very solid and comfortable.

Moving on, this morning was the first time I’ve used TouchID. I don’t know how I lived without it. Actually I do: I would avoid the inconvenience of a delayed unlock process by not setting a password on my devices. TouchID makes security easy by reading your fingerprint on the home button to unlock the device, and I can’t wait for more 3rd party apps to make use of it in iOS 8.

Speaking of buttons, the power button is now on the side rather than the top of the device. My first impression of this change isn’t good. More than once I’ve tried to tap that button to turn off the phone, and instead did a combo press with the volume button on the other side. The OS gives the volume button priority (which is probably the best choice) and the device stays on. Taking screenshots using the home/power button combination is more difficult too. Aesthetically, the power button placement is nice (both with respect of having a clean top panel, and also having the side buttons laid out symmetrically), but usability would be greatly improved if the button wasn’t directly across from the volume buttons.

Finally, I was originally going to use the iPhone 6 without a case, but due to a few of my observations above I think I might change my mind. The device will be easier to pick up off a table if it has a little bit more depth, which a case would add. And with the almost-drop due to using it one-handed, I would feel more comfortable if I had some protection if the worst was to happen and I actually did drop it on a concrete floor or other hard surface. I’ve never really dropped a phone in the past, but I’m not sure my luck will hold with this model. The third reason buying a case is a good idea is due to the extended camera lens on the back of the device. When setting the iPhone 6 down on a table, it is resting on the camera lens. That invites the possibility of scratching the glass, which as a photographer I would hate to have happen. I will use it for a few weeks before making a final decision, but I expect I’ll be plunking some money down for a case in the near future.

Overall, the iPhone 6 is an awesome upgrade and I couldn’t be happier right now. It’s just going to get better as HealthKit comes online and Apple Pay starts rolling out to commercial locations next month.

GSGradientEditor

A fairly significant feature in Seasonality Pro is the ability to edit the gradients used to show weather data on a map.  When looking around for some sample open source gradient editors online, I didn’t come across anything I could really use.  So I decided to write my own and offer it under an MIT license.  I posted the source code (link below) on GitHub.  Here’s what it looks like:

I’ve included a lot of documentation as well as a sample Xcode project to show how to use it over on the GitHub page:

GSGradientEditor on GitHub

I looked at quite a few different graphics apps when working on the UI.  I wanted to see not only how other implementations looked, but how they worked.  With iOS 7 being more gesture-centric, I wanted to make sure that interaction with GSGradientEditor was intuitive.  I found the Inkpad app most helpful during this process.  In the end, I like how GSGradientEditor turned out.

Enjoy!

Storyboard Change

This Storyboard change bit me this morning. I was trying to do some initial calculations from my view geometry before it is displayed at app launch. Previously, when using XIB files to define an interface, you would be able to see your view geometry as early as viewWillAppear: in your UIViewController.

With Storyboards, view geometry will not be ready until later. In my case, within viewWillAppear: the view bounds returned all zeros. Took a bit of Googling to find the answer, but eventually came across this question at StackOverflow:

Gettting [sp] subViews’ frames in Storyboard

In short, if you need your view geometry as early as possible, use viewDidLayoutSubviews in your UIViewController.

Letting Go…

Many people outside of the software development field (and some people in the field) may have the incorrect view that computer code is just cold, hard text written only to make a computer do something. While that may technically be correct, for people who genuinely enjoy coding the application code can be a warm, even living, being, constantly evolving over time to provide the user with an elegant means of accomplishing a task. When programming, I don’t think of myself necessarily as pumping out code. It’s more of a massaging of the project to get it to do something just right, and then a final smoothing of the bugs or gaps in the functionality to make it work perfectly.

Because of this almost art-like view of my career, it’s often difficult to stop working on a project. Then when you consider how many hundreds or thousands of hours you’ve invested in a project, walking away becomes next to impossible. However, I’ve reached a time in my career where I have decided to do just that.

//
//  MyWeatherAppDelegate.h
//  MyWeather
//
//  Created by Mike Piatek-Jimenez on 3/26/08.
//

Above is a copy of the code header for the first file to kick off the MyWeather Mobile project. March 26th, 2008: 4 months before the App Store opened, and only a few weeks after Apple released the iPhone SDK. After working with the team at Weather Central for almost 11 months, I’ve decided it’s time for me to let the project go. The reason for parting ways is not that I don’t enjoy working on the project. It’s more of a re-evaluation of priorities.

The thing is, I have a lot of ideas both for continuing my current Gaucho Software products, as well as ideas for entirely new projects I would like to bring to market. While consulting for the past 4 years, I keep finding myself looking back trying to figure out why I’m not able to be productive on my own apps. Sometimes I will go months without touching any Gaucho Software projects. I spent a good amount of time over the holidays reflecting on this problem, and I’ve determined that in order for me to continue working on Gaucho Software products in any productive form, continuing my consulting work just isn’t an option. So with Gaucho Software turning 5 years old this April 1st, I’ve decided to focus entirely on in-house apps from this point forward.

So with that, I hand over the reigns. Version 1.3 has already been uploaded to the App Store and is pending approval. Version 1.4 code is done and we are just waiting for some back-end features to be finished before the release next month. The team at Weather Central have been a joy to work with. Having the graphics, code, and data all merge together in an iPhone app is not a trivial task, but with this team it worked like magic. Graphics were readily available; the data pipes were overflowing; and all that was left was to write the code and bring it all together. I wish them the best of luck in continuing project development of the MyWeather Mobile application, as well as any other projects they decide to bring to the iPhone platform in the future…

© 2017 *Coder Blog

Theme by Anders NorenUp ↑