Next Week is Big

Over the last month I’ve seen a lot of talk about the upcoming rumored iPad mini, Windows Phone, and Samsung’s latest device. All of these seem to be coming to a head next week.

October 23rd is Apple’s something little event, Samsung is expected to announce the Galaxy Note II on the 24th, Microsoft Announces Windows 8 on OCt. 25th, and on Friday Windows 8 goes on sale. And just to keep it up, the following Monday on the 29th Google is expected to announce a new Google Nexus device!

Can’t wait to see the reviews on all this new tech and to see how it may impact my development plans.

Read Me

Amelie is a tumblog theme with flexible logo, navigation, sidebar and header options.

 

Promoted Blocks in Blog Posts

If an Image, Video, Gallery or Map Block is the first block in a post, it is ‘promoted’ above the title and expanded to the top corners.

This feature can be turned on or off with thePromoted Blocks (Blog Post) and Promoted Blocks (Blog List) options in the Style Editor.

 

Layout Options

Use Sidebar Position to display the sidebar on the left, right, or hide it completely.

Use Site Title Position to display the site title in the sidebar, header, or hide it completely.

If you choose to display both the site title and navigation in the Header, use the Header Position drop-down to float them side-by-side, or stack with left or center alignment.

 

Social Links

Use the Social Icons drop-down to set social link colors to match the brand’s trademark colors, or your template colors.

 

Navigation

Customize the navigation display in the Style Editor with these settings:

  • Navigation Font
  • Navigation Size
  • Navigation Padding
  • Navigation Rounding
  • Navigation Spacing
  • Navigation Links Color
  • Navigation Links Color (Hover)
  • Navigation Links Bgrd Color
  • Navigation Links Bgrd (Hover)

 

By default, site navigation will appear in the sidebar. Options are listed under the Navigation Position drop-down to display navigation in the sidebar, header, or hide it completely.

Adjust the rounding of navigation links, inside padding, and outside spacing with Navigation Padding, Navigation Rounding, and Navigation Spacing.

To remove this styling completely, set Navigation Background colors to transparent, and the padding, rounding, and spacing to 0.

  

Using Squarespace

Help topics and step-by-step guides on using Squarespace.

Step by step articles on the various aspects and capabilities of Squarespace.

Chat directly with a support specialist for immediate answers to your questions.

Windows 8 and the phone

It appears that Windows Phone SDK is finally getting released at the end of this month. I’ve been looking at a lot of different reports lately about the amount of apps by platform, the growth by platform, and popularity of various other aspects. To that end, whenever I see these reports I think “would I, should I, learn yet another phone platform and target it?” I am sure many other mobile developers are thinking about this same thing.

When people look at stocks, the saying is, you buy on the rumor and sell on the news.

If you use this thought process for you mobile app development, does that mean that we should all be coding for Windows Phone 8 by now? The Analysts keep saying it is going to be huge!! I know this report is a bit old, but I’ve not found any report that says this prediction has changed. So to me, this is the rumor… It also becomes a self fulfilling prophecy… if we follow the idea above. People go to where the apps are, so if we build apps on the rumor, the apps will be there.

The flipside the also becomes true, we all know the news of iOS and Android. they are hugely successful with so many potential users for our apps. They are both continuing to grow fast! So if we build on the rumor suddenly there won’t be new apps for these popular platforms. And people will leave them.. to go for the new apps… over on Windows.

I’m not sure.. I think I will continue to write for IOS.

Catching up on some blogging

Sometimes I forget how fast time can move when you are busy. I’ve been meaning to blog since going to the escapist expo a few weeks ago, and I just keep running out of time, so this morning while I drink a cup of my favorite coffee, I decided to start this blog entry.

So where do I begin?

The Escapist Expo happened the same weekend as Durham’s Centerfest celebration. I had found out about the Escapist Expo on friday while listening to The State of Things – and decided I had to go. How could I not? Gaming, Games, and Geek Culture!! It was a triple threat. I went and got to hear a session from Chris Hazard – founder of Hazardous Games. I’ve talked with Chris many times, including on both of my podcasts – (Dogearnation – now defunct, and GamesAtWork.Biz – the current podcast). He has an amazing mind and thinks a lot of how to use time travel in simulation games. I then spent time on the show floor, testing out new games, picking up some game inspired music, and watching all the really great cosplay people. Amazing time, hate that I forgot to take pictures. Oh, and I did take part of a team based geek trivia panel, there were 9 teams and we came in 4th. Given that there was a bunch on console gaming (and I don’t do console gaming), I felt proud to place 4th!

Since I didn’t take pictures.. I am linking to another attendee’s blog who took some great pics.

More to come .. soon.. I promise

Today’s Apple Announcement

Well, today’s Apple announcement wasn’t as exciting as I wanted it to be. It wasn’t because the iPhone 5 wasn’t phenomenal, it wasn’t because it wasn’t faster, thinner, better display, or any other reason. It was because the great Apple Secrecy has been shattered. There were no surprises.. Even the last minute crazy rumor of a new set of earbuds, turned out to be true. Yes, I want one, yes I have to wait until my contract is up. Yes it will run all my apps.

As soon as iOS6 comes out officially, I will talk about how some of these new features will be amazing on the new phone. Are you going to buy one?

Sunday is coding time

As I’ve mentioned in recent posts, my day job is a bit overloaded lately. The good news is, after spending significant time working on Saturday, I discovered that I will not have my first thing Monday morning meeting. What that means is, today I get to code!

I’ve been struggling with inserting sprites between layers of a TileMap in my game. To that end, I’ve decided to go back and retake some of the classes I took early on when I first started coding for iOS. I realize that like many things, you need to spend time coding to keep some concepts in your mind correctly.

I’ve also picked up a few new tools to help in the game design, the main one being LevelHelper. This allows for integration of cocos2d and box2d for creating level based games. There’s a great tutorial by Ray Wenderlich on how to make a JetPack Joyride like game using levelhelper. I am hoping to play with this design to get my game designs jumpstarted.

What is your biggest challenge

I don’t have a lot of time to do my blogging, coding, and gaming… I have my day job which has been consuming more and more of my free time, including my time on weekends, and evenings. I bet many of you can relate to that, especially if you are doing mobile development in your spare time. I picked up mobile development a few years ago, as a way of getting back to the code. I’d been a developer many years ago, but as my career advanced, I started doing architecture, management, etc. The more I advanced the less I got to code.

Getting back to the code two years ago, was load of fun. It provided me with hands on experiences that many of my day job’s customers were dealing with. The ability to get back to this level of understanding has been invaluable. Having said that, I am also dealing with many of the challenges that customers and other developers are dealing with. A few of the ones I’ve been dealing with are:

  • Keeping up with multiple device characteristics. Even though most of my development is on iOS, I am still dealing with iPhone vs. iPad, normal vs. Retina. I can only think that adding android or Windows phone will compound that challenge.
  • Testing, and I don’t just mean the device problem. As a one person development team, I find that testing mobile apps to be difficult. I use the emulator to test as much as I can, but I also have to test on my devices. Of course, I don’t have all generations of the iPhone. To that end, I tend to force people to upgrade to “current” versions of iOS. This is probably not practical for most developers.
  • UX/UI design. I am not a graphic artist. So even though I have ideas, I can’t always visualize them. So things don’t look as good as I want them.
  • New toolkits. I am working on a game… Of course I am not an expert on all of the classes and methods within iOS, so adding a game platform library into the mix means I am even less of an expert. When should I use the toolkit vs. native? How to best optimize my apps performance

What are your biggest challenges?

How Fresh is your Code?

I was driving back from the gym this morning, I like to swim on Sunday mornings – I find it very relaxing to do a hour long swim and reflect on what’s the past week has been like. As I left the parking lot, I saw a major grocery store chain’s truck with the phrase “We do Fresh – the Best”. The problem with the giant graphic on their truck was that it was a sub sandwich (or a hoagie if you prefer). It consisted of bread, tomato, pickle, lettuce, ham, olives, and cheese. While the bread, tomato and lettuce could be considered fresh, nothing else on the side of the truck was. Pickles were at one time a fresh cucumber. The olives had been cured. The cheese, was at one time fresh milk. And the ham was also cured. So I guess fresh is a bit of a misnomer.

You may ask why I am writing about this (and yes, I gave away the story in the blog post’s title)? In this age of app stores with hundreds of thousands of apps, getting your app to stand out is more than just having a good / great app. It’s about getting and keeping customers. Let’s face it, your idea may be good, but it’s not hard for people to create very similar apps. (Think about Temple Run and the many knock offs that have come out based on it).

You can choose to expand your app via in-app purchases, and that makes a lot of sense for Freemium apps or those apps which have a defined functional domain that can be enhanced with specific features. But what if you created a utility app? It does one thing, and it does it well. How do you keep people updating it, and new users downloading?

Apple and Android are both coming out with newer versions of their operating systems multiple times per year. Try refactoring your code so that it takes advantages of newer functions. I did this personally with Wasted Time, when I replaced the Twitter code with the native iOS twitter features. Yes, this may cost you some users that are on older devices (or require you to have more complex code), but given the cycle time of people replacing their devices every two years this shouldn’t be too big of a worry.

Also, try reworking your user interface. Are you taking advantage of newer screen resolutions? Are you correctly handling all device orientations? Are you bored with the cool widget you designed two years ago? Change them!

While the sandwich had a bunch of well cured products – olives, pickles, ham – it was the fresh bread and juicy tomatoes that really stood out in the picture on the side of the truck. And let’s face it, it got my attention…

Graphical Lessons at this week’s Cocoaheads Meetup

On thursday night, a group of 26 developers got together at the offices of TekSystems in Raleigh to talk about iOS development. This meetup group is sponsored by both TekSystems and Two Toasters (From Durham, NC). For those who are looking for work as an iOS or Android developer, TwoToasters indicated that they are currently hiring so drop them a note at Careers.

The 26 people in the room ranged from teens to people who could have been their grandparent. Was great to see this expanse of ages, and I was impressed at the discourse and questions across all ages and participants.

The Triangle Cocoaheads who run the meetup made sure we had a great set of presentations. You can watch video of all the presentations over at their website.

The first talk was from Kevin Conner, this was all about the collection classes. While most of us are familiar with NSArray, NSDictionary, NSRange, and NSNull, Kevin did a great job of explain various collections and new syntax in objective C. NSIndexSet, NSCountedSet, NSAutoreleasepool, NSOrderedSet, and NSSortDecriptor, and NSCache were all brought forward to the group. Kevin provided examples of when each could be used, as well as information on how they effective app performance. Definitely a video you want to check out for more information.

Up next was Eric Lanz. Last month Eric showed off a organizational tree app he was working on. The crowd last month was wowed by the performance of the graphics, so Eric’s presentation this month was on Multithreaded graphics. Eric has proven that you can do things on iOS that Apple claims can’t be done. I personally have been a bit concerned about how much space graphics take up in my own apps, so I was fully engaged when he gave a few tips for programs to help reduce your graphic files; however this was only a minor part of his talk. Eric provide tips for building your graphics pipeline in your app, so that you can spin off the drawing in separate threads. This allows your to optimize the number of times your draw things, and also kill drawing if the user quickly moves on to a new screen. The goal is to keep your app response, while providing the user informed with enough graphical content. Amazing!

A few of his tricks include building a Dispatch Serial Queue – this will allow you to have a task to run on a worker thread and/or using the Dispatch Global Queue – which on iOS you can’t create yet, but you can get the existing global queue. However, if you use these queues you need to remember to push your graphics context, or you will crash!

Finally, Jay Thrash went thru an architectural “Unburdended ViewControllers”. A key point that I got from his presentation was how the Model-View-Controller approach can cause problems of maintainability overtime, especially as it relates to accessing data. Jay referenced a book I am currently working my way thru from the Big Nerd Ranch called “iOS Programming – the Big Nerd Ranch Way”. This book calls out the idea of a Store – extending the MVC model to MVCS. This abstraction of data allows you to simplify the maintenance of you apps, and deals well with data stores that can be on the device, or via service calls to other systems. A good example to understand this approach comes from the article “Skinny Controller, Fat Model”, talking about Ruby over six years ago. Check it out and don’t forget to head over to Triangle Cocoa to watch this video.

After this we went to the App Showcase of the night, were local developers show off what they’ve been working on. I didn’t catch everyone’s name, probably because I was nervous – I was going to show off my original app – “Wasted Time” and a work in progress for a game I am developing “Traders vs. Trinars”, but we saw a great example on localization. This app demoed changing the orientation of your language for Arabic and Hebrew, i.e. languages that read Right to Left. And a demo from BA3 on their mapping API – Amazing!

Well, I am looking forward to next month’s meeting. Until then, keep on coding!