Apple Developer Portal Update

Last Thursday I got a password reset email on my iOS developer account, one that I didn’t request. Given that I didn’t request it, I filed it away for when I had time to call Apple and find out what was going on. Well yesterday I got an email from Apple indicating that someone had hacked the developer portal and that they had shut it down in order to address the problem. The following image is a copy of the Maintenance screen they have on the site this morning. Has your account been compromised?

Screen Shot 2013-07-22 at 9.06.26 AM

The Guardian UK posted a great article on the hack this morning.

Keeping your code new – a dilemma

I’ve written a post on this idea from the perspective of your users, should you upgrade your app to the latest level of an operating system. I’ve even talked about how you learn by keeping up with the latest releases of API’s and interfaces. But what about the down side?

Traditionally large IT companies have forced operating systems companies to be backward compatible, so as not to lose the large revenue that they get from companies. Over the last few years, businesses have be even more cautious about upgrading hardware and software. This means that they are slowly losing influence on developer who want to create the next cool thing. Is this a start of the innovators dilemma for software developers? Do you still need to cater to the large support revenue you get from traditional enterprises? Or do you bite the bullet and develop new and radical solutions that move your user base to a new code base?

Evolving your Interface – A good thing?

While catching up on my reading the other day, I found this article over at Infoworld called – Mobile Apps Death Wish. You may call the title a little melodramatic, but it got me to think about my habit of like change and it’s impact on my users.

The author of the piece goes on a bit of rant on how newer UI techniques are actually making it harder to find information and the over abundance of graphics with text on top, is causing issues for people who have eyesight issues. I agree with the point of the light grey text on a dark grey background, especially since I tend to keep the brightness pretty low on my devices (I love extending my battery life). However, I believe that the appropriate use of graphics can really help an application get broader/nearly universal appeal without requiring much localization of text strings.

The other point the article makes is that both Android’s current auto update, and iOS7’s upcoming auto update feature are going to cause even more problems for people who do not want to change their apps. I hadn’t thought about this, since I like to learn new things and therefore (as mentioned above) actually embrace change. Yes, sometimes it is difficult or uncomfortable, but change will happen, so we may want to get use to it.

My wife, on the other hand, doesn’t like change to the programs she uses. And this is the point that the author should have made more strongly…if you are making a change, make it for a reason, not just for looks. Many applications add cosmetic changes without any regard for the impact to the function of an app. If you are going from a mostly test based interface to a completely graphical interface, make sure those who need to use screen readers can still use your app. Or give the user a choice. It is easy to just assume that everyone will like the new version, but if you work on giving both options, you – as the developer – will get to learn more! Yes, it is change for you, and that will help you expand your skills. Try and figure out how to add that new, cool graphical feature in such a way that a text only user can benefit too.

What do you think? Should we all just keep tweaking our apps, or should we figure out how to incorporate new features in such a way that it is useful for both old and new users? When should your new features necessitate a new version of the app, so users can choose between version 2 and version 3 (given the challenges of auto update?).

It’s all a matter of public record

I recently had the chance to review a locally developed app called Public Record. This application provides search capabilities for legal documents and court records in the state of North Carolina. There are multiple applications that provide this capability, but I cannot compare the functionality as I have not tried them. As a supporter of locally developed apps, I was happy to take a look when Richard Brown (the developer) reached out and asked for me to take a look. I am currently working on a video for the site; but wanted to my impressions here.

The appeal of this app is to those who need access to the data but do not have the time to travel to each county courthouse to go get the records. If you have the citation number and the county, you can pull most information. If you are just testing the app, and haven’t been the system (that you are aware of) it is a bit daunting…but no more daunting then back-end county/state systems it is pulling data from. The app seems very complete for the scope it covers, and I like the fact that it includes a built in dictionary of many of the legal terms related to the data you may be searching for.

The great story behind this app, like many developers, Richard built the app after dealing with the frustration of trying to get these types of documents thru other means. Developing an app for your own needs, and then seeing the value of it, allows users to benefit from your hard work! I hope to post a demo video soon,

Podcasts and patents

A few weeks ago I stared hearing about a patent claim from the mid 1990’s that would change how we all create and consume patents. The podcast community is asking for help and support to invalidate this patent. If you can help out, please follow this link and help! Thanks.

Experiences with Constraints and Storyboards

Well, it was a challenge, but I got it done. This past weekend I spent most of the time refactoring my personal app to using iOS 6.1’s autolayout capabilities. While I started off pulling out my hair, I ended the weekend with screens that looked pretty good, and that correctly handled almost everything I could throw at it. The net of all of this, is that I learned how to improve the flexibility of my apps. (I now can correctly re-size between iPhone 5 and pre-iPhone 5 layouts).

The biggest problem when going thru this, was that XCode kept trying to guess what I was trying to do. It would pin objects to the top of the screen, which would then disappear beyond the bottom of the screen when I rotated the screen. It would link two assets and then assume that I wanted the same spacing when I rotated, again pushing things around. The biggest thing I learned was to treat your screen layout like a bunch of sub-views. This allows you to then group things in subviews and build up relationships between the subviews. It reminded me of hand coding websites years ago, right after HTML introduced tables.

The other key thing to do, is make sure you pay attention to Less than, Equal, and Greater than. This impacts how things will grow or shrink. I cannot tell you how many times I caught myself with a Equal link(the default), when I wanted things to shrink down, a Less Than link. So far I have not gone into the details of code centric autolayouts, but for my simple app, I didn’t need that yet.

I can try and address questions if you have any, so drop a comment to the blog!

iOS Storyboards, AutoLayout, and Constraints

I’ve been in the process of refactoring my app – Wasted Time in order to add native Facebook integration and a new ToDo feature. As part of this refactoring, I am changing from a simple UITabBarController to a UINavagationController based root control. This change will allow me to have the ToDoViewController be able to be pushed on the stack and pop off the stack when the ToDo is complete. Overall, I am very happy with the progress I’ve made by doing this.

HOWEVER; (and yes I am yelling as I type this) my default struts based formatting, which has worked well for me on iPhone and iPad with a traditional NIB based interface, is going to be replaced with a Storyboard using AutoLayout and Constraints. This is a bit more complex than it may seem, but the overall goal is to allow future updates to devices (screen size, etc.) to be able to better resolve the interface elements of my app. Yes that is the promise.

After spending a couple evenings working on reformatting and tweaking the constraints, I finally broke down and thought, I should do a tutorial or two. I was pulling out my hair, and screaming at the screen. Every time I moved a single screen element it would screw up everything! While I can still pin things to the top/bottom, left/right, and Horizontal / Vertical, it was struggling with groups of elements that I want to keep on an area of the screen.

The first tutorial I found that seemed to take a pretty natural approach for stepping you thru the complexity. This is from the team over at RayWenderlich.com. There are a lot of different tutorials there, and they do provide enough info to get you started. Of course, the complexity of my simple screens was beyond the basics of parts 1 and 2 – I bought their book (IOS 6 By Tutorials). I guess they succeeded in providing me just enough content to make the purchase.

So now I plan to spend a bit of time over the next few weeks working on really learning how constraints work. Will post more information on this as I progress.

Does the xBox Announcement Matter

Microsoft has finally made their next generation console announcement. You can watch a replay here. This got me thinking, does it matter? The basics are an improved processor, more cloud integration, improved Kinect, and better media center capabilities. As more and more people are become cord cutters, and more and more gaming is happening on hand held devices, it does seem that Microsoft is realizing it must pivot the value of the console, but is this enough?

To me, the cloud parts could be interesting, if they allowed me to seamlessly transition from playing my favorite MMO on my desktop and then shift onto the big screen in the living room without missing a beat. But other than that, it doesn’t hold much interest. The Kinect part; however, may be the game changer. Improved fidelity and speed in processing may bring us one step closer to the seamless interfaces of science fiction. Add strong Google Now / Siri like capabilities, and perhaps the new xBox One will be the one interface you need to run your house.

Google Developer’s Conference

*** It seems that this post didn’t go up when I thought it would..not sure what happened (I am sure it is a users/poster error).

I was lucky enough to have a very long drive during the Google IO keynote so I had time to listen to the livestream of all three hours while driving down the highway. There were a couple of key items that I found very cool and I’d like to share them now..

1) Google is finally getting social right. Their use of Google Now, Google Hangouts, and their new features of Maps are all great examples of how they are leveraging social and location data to create incredibly cool results.
2) Google is making a great play for the education market. One of the things that Apple has been historically good at, is addressing the K-12 markets, but their premium pricing have become a bit of a challenge in today’s highly sensitive budgetary environments. The Google Play store for education sounds amazing: teachers able to push apps to their students, centralized financial control, but teacher lead purchases, and many other features.
3) Larry’s speech was amazing. I am sure part of it was the tenor of his voice driven by his vocal chord paralysis. His vision of the value of technology and engineering and how we all as developers are going to change the world, was not only compelling, but also inspiring. Yes, I can easily point out the self serving nature of some of his platform comments. Yes, I can talk about how his “open” comments are again a bit disingenuous. But it still was a great speech.

The net was, I can’t believe I didn’t order my Google Glass last year, I will have to do it when they become more generally available.

What did you find interesting?

Where does your App make it’s money

This week has been just as crazy as any other week, but I guess that’s a good thing. Had a great time this week at my first every iOS Meetup (a sister group of TMUG). While the group was small, we had a great time sharing new apps and ideas about using our respective devices. This got me thinking about all the cool apps I’ve been using on my iPhone and iPad, and how over time I keep rotating which apps I use. I’ve tried multiple news readers (Flipboard, Feedly, and others), but always come back to Reeder. I’ve played with multiple Podcast players, but alwayes come back to Downcast. I play so many games, but pretty much always come back to a variant of Angry Birds.

And so, as a developer I wonder how do others make their decisions on whether to create a new app verses upgrading their existing apps. New Apps, tend to mean new revenue, while updates are free on iOS. I recently picked up an Android device, and have yet to buy any apps on it, but I am loading many of the same apps that I use on iOS. I am betting; however, that on Android you will be able to paid upgrades in the long term, without having to release a new app name. The reason I think this will be the case is that we are starting to see parity in the number of apps between platforms. But iOS still makes app developers more money. Developers will not be content to give out free versions of their app and the upgrade path on iOS will not allow your to access your data between versions; making it even more difficult for your users to experience a seamless upgrade.

A recent story on TechCrunch shows that for now iOS is still the dominate platform for developers to make money. While more and more developers are working on multiple versions of their app (across platform), Android will need to do something to help developer make more money on that platform if app parity is to continue. Right now developers are investing in market reach, but unless that reach is profitable, that investment should end.