Cranial Discharge

The gooey ooze that leaks out of my head

You are currently browsing the Development category.

iApp development – getting started

So I got a call from someone needing a iPad app on short notice…

Building for iPhone/iPad/Android is something that I’ve been wanting to get into, but haven’t had the time to dedicate to learning because of a million other things. That’s always how it works I suppose. Anyway, a couple of months ago I got an opportunity and although I wasn’t really ready, I decided (was pushed a bit, actually) to take it on and see what could be done. Luckily, the app itself seemed very simple.  I already was registered as an app developer with Apple from a while back, you just need to renew it every year. I had downloaded all the tools from Apple, although I had done almost nothing with them. So I went through some of the tutorial videos, read a lot and came to the conclusion that this was going to be a total pain in the a$$. And I really need to learn Objective-C.

Way too much time and learning for such a small project. So, lazy person that I am, I looked at other options for just getting this one out the door. I came across two promising options: PhoneGap and Titanium Studio from Appcelerator.  Based on not much more than a few reviews and comparisons, I went with Titanium Studio. They’re both free, so no biggie if you dump the first one you try.  And huge advantage in my book, they’ll both work on more than just Apple devices.  Here’s a quick overview of my experience getting started…

Even though I read everything I could find and decided on one of the tools, I still had no idea what I was getting into. The problem (to me) is that there are many parts that have to be coordinated, and I didn’t understand which parts were which and how it all fit together. I didn’t realize when I downloaded Titanium studio that you still need Apple’s Xcode involved. Essentially, Titanium Studio is a combination of tools, some of which you have seen before if you use tools like Eclipse from Aptana. You code in the IDE, then test on the iPad or iPhone emulator that is part of the Apple toolset. Then you use Xcode and iTunes to get everything to the device for testing. At least that’s how it worked for me. I’m sure that all seems obvious to any Apple developer, but as a newbie it wasn’t clear to me at all.

Getting into the Titanium Studio IDE, setting up a project and testing it is not too painful. Within a day of installing, reading, trying out the sample apps they provide, and doing some rudimentary coding, I already had 75% of my first app done (keep in mind it was a very small and simple app).  I probably had not built it in the most elegant way, but what showed up in the test environment was what the client asked for, which is a great start in my book.

The pain came when I had to actually get it onto a device for testing. All I can say is Apple’s process is tedious, and even though they give solid documentation and lots of info, it is still not very clear – to me at least. A major problem is that I’m one of those that tosses the manual aside and just starts hitting buttons. That won’t work with the Apple registration process unless you’re extremely lucky. It took me several tries to get everything just right, get my phone registered as a development device, and get it properly associated with the project I was building. It took a lot of jumping back and forth between Titanium Studio, Xcode and the Apple development site before it finally worked. My main problem was that it wasn’t clear to me what parts were responsible for what, so I had no idea where the problem was. I kept messing within Titanium Studio thinking I had done something wrong, when it turned out that I needed to be messing with the Apple developer site because the registrations weren’t correct yet. It literally took me 3 or 4 times longer to figure all of that out and get it working than it did to install the tools and build the silly app!

Thanks to all the other people on forums that had similar problems, I puzzled through it. There was no magic answer, sadly. My solution was a combination of bits and pieces of what other people came across. They had other issues I wasn’t seeing, some that sounded scary compared to mine. After lots of reading, resetting things, removing and re-adding information on the Apple site, I got it installed so I could test on a real device. And it worked!  wOOt!

Getting it onto someone else’s device for testing… well, a whole ‘nother level of complexity. Actually, once you get the basic idea of setting up the test devices and projects on the Apple dev site, it’s not too bad adding more. The problem is that now you have to get device info from anyone else who is going to test, register those devices with Apple and the project, and then go through the install with them. Which takes a few tries.

The second app went much quicker, but it’s still sticky for me. All too new still. I’m not 100% sold on Titanium Studio, but it was quick to get started and it all made sense to me. Ok, most if it made sense. A few little niggles here and there, like any development tool.

All  in all, a pretty positive experience, but Objective-C and the standard Apple tools are the way to go for i-Only development. So my current plan of attack is to keep using Titanium Studio for the time being, because I have more iApps to work on right now, and as I can I’ll keep diving into Objective-C and see what I can do there. My thought is that I’ll eventually transition to using Apple’s tools exclusively for their devices, but that will depend on the market. Right now iPad is king in the market I’m doing most of my work for, so that’s an easy choice, but it’s always prone to change.

 

 

 

 

 

Posted February 21st, 2012.

Add a comment

Bad Business – Avoiding It

Most clients and potential clients that contact me have a pretty solid idea of what they would like to do, and how much they want to spend to do it. We spend time up front to flesh out ideas and explore possible solutions that the client may not have considered, or maybe isn’t even aware of. I love the start of new projects – new projects are all about possibilities, and I am a 100% a possibilities type of person. But once in a while at the start of a project the spider senses start to tingle…

Long before I went freelance in the mid 90′s, I acquired the mantra “Don’t take on bad business.” That phrase is my “tingle.” Early on I had a handful of specific things that I kept an eye out for, but over time it became more part of intuition rather than conscious thought, and I stopped thinking about the specifics so much. “Bad business” is a project that has a higher risk of failure than I would like to take on. I’ve been fortunate over the years to have had only a couple of projects go seriously awry, but they were incredibly painful to go through. I find that it takes time to recover mentally, and you lose money to boot. It is absolutely acceptable – no, it’s imperative – that freelancers and agencies turn away bad business. It can be difficult to turn away potential income, especially if work is slow, but the downsides are simply not worth it.

I read an article on Mashable by Brett Miller that does a nice job of explaining many of the potential problem spots. The article focuses on software development, but the points hold for any project that a developer, designer or agency takes on. We’ve all come across most of the issues highlighted in the article, but one stands out for me:

Too many cooks – this is the “Deal with Decision Makers” item on Mr. Miller’s list, and is by far the number one concern for me.  It has manifested itself in a variety of ways, but there is one project kickoff scenario that terrifies me: If I walk into a conference room with a big group of people, my warning bells immediately go off. If during the meeting it is clear they don’t agree on what the final product should be I’ll hear everything out, and if a common vision can’t be agreed on by the end of the meeting, they’re not ready for me yet. I advise them to work together to define what they need and then bring me in. Any potential project that brings in a designer or developer that has various factions in disagreement is simply not ready for development yet. There are certainly options for getting involved and helping drive the group to a set of requirements, but I have found that too often the client then thinks “real work” has started (and the project clock is ticking), when in fact from my perspective the project can’t start prior to requirements definition.

Unclear requirements is probably the second most critical item on my personal “Bad Business” list, but that can often be worked through with a client. Mr. Miller is right in pointing out that time is valuable, so if I’m getting involved in helping define requirements, I need to see some money up front. That does two things: First, it ensures the client has some “skin in the game” – they are much more likely to follow through on a project that they’ve already invested in, and second, it lets them know that my time is valuable, and that defining requirements and specs is an important part of the work. A freelancer is a professional, and should be treated as such.

 

 


Posted November 6th, 2011.

Add a comment

New project, new site

eLearning Production

New eLearningProduction home page

I’m working on a new site for a partnership that I’m working with to develop distributed learning projects. It’s decidedly not ready for prime time, but it’s alive at least. This will change significantly once we come up with a logical structure for the site and the content is completed.

 

Update 02/12:

I decided the look wasn’t bold enough color-wise, and I needed to make some structural changes to fit content and ideas other had, so I’ve updated the look.

 

eLearning Production web site screen grab

eLearningProduction.com Screen Grab 02-12

There you have it.

Posted October 19th, 2011.

Add a comment

New Site Day

Updated the site over the last two days. It’s been a lot of years since I did anything on the site.  The content is lacking, for sure, because that’s the part that takes so darn long to get together. At least I have places for everything and I can add/edit as I get things ready. No pages are totally blank, so that’s good. I just put up a few things I had laying around that were easy to access.

New marinich.net home page image

The new look for marinich.net

The main page is a JQuery thing, and I put in my first us of the Canvas tag on the screen shots page. It’s a little jerky on slower machines, but not terrible. I tried it on a low end Gateway touch screen machine, and that worked pretty well, except it really wants you to turn off the system-wide gestures, because it gets a little confused understanding whether you want to expand one of the images or the page within the browser window.  I also tried it on an older Windows machine, and the page actually ran very well on that machine using a mouse. I do have a ton of graphics memory in that box, so that may help.

The rest of the site is pretty basic, but more to come as they say.  Hopefully.  I noticed some oddities on different sized screens, so I’ll have to at least take care of that.

Posted August 6th, 2011.

Add a comment

Two Cents, Too Late

It’s been a while now since the Flash vs. HTML5/CSS3 brouhaha really got going when Steve Jobs declared Flash dead, but the topic jumped into my head again this week when I used Flash for parts of a video project I’m working on.

Inverse kinetics was the feature that brought me back to Flash for this project. It’s a huge help with some types of animation, and features like that, along with it’s powerful ActionScript 3 language, are one reason Flash will be around for a while.

Now, Steve Jobs wasn’t entirely wrong, and anyone who paid attention to the industry knows that Flash had been taking a beating for years by web designers and developers – primarily because so many people use Flash in so many wrong ways.  The classic Flash-only web sites, for example. Steve Jobs just brought new weight – not to mention a legion of followers – to the argument. And mobile certainly opens to door to a whole host of changes that are coming.

To be fair though, just about every complaint about Flash has been addressed in one way or another – either by Adobe, or by the huge community of Flash-related developers. I agree with the people that say avoid Flash on the web for many of the common uses we see – menus and navigation, for example. HTML/CSS/JavaScript is a far better choice for most of those features.  Video playback is a tossup right now as far as I’m concerned. Yes, you can do it without Flash, but it harkens back to the old “Browser Wars” days when you had to specially code for each browser. A pain I certainly can do without. I’m sure that will get worked out eventually, but until it does Flash is just as valid as any other method – it’s easier for me to implement, and it works for all of my clients – the only exception being the iPhone/iPad audience, which is not too difficult to work around.

So, while I agree that Flash having a reduced role on the web is a good thing, I also think that Flash is far from dead. And if the past several years is any indication, I suspect that Adobe and the Flash community will push Flash into new areas before long.

Like any tool, the key is using Flash for what it’s best at.

Posted August 6th, 2011.

Add a comment

A day in the life of a freelancer

Sometimes…

A request I recently received via email – and I quote:

We are working on a project that would basically be a Flash interactive application. I attached a PDF that explains the function. Keep in mind this is not the actual design but more of a functional representation…

Would you be able to give me a cost as to how much you would charge for a project as such? I really need the pricing early tomorrow….

Attached was a one screen pdf with five or six comments about video, slides, transcripts and pause/play functions. Pretty basic as for “interactive” (in quotes because that’s practically *not* interactive at all) presentations. No sense of size, or whether there are any elements besides just the video and slides.

So I responded with a fairly detailed email asking specific questions, and about 30% of the questions were answered usefully. A short back and forth followed, which didn’t really help me clarify the project all that much. Not all that unusual for us freelancers – and really not so unusual in any working environment. Anyone who is on the building or project management end of a project knows that often the most difficult part is guiding the client through the process of actually defining the project clearly enough so construction can start.  But this was just an estimate, so I put together one with a fairly wide range and tried to explain the various options, and I listed my assumptions, etc. I do that for any project I estimate, even if the goal is very clear.

What floored me wasn’t that request. It was the one I got from the same client within hours of the back and forth on the first request.

And I quote:

Can the xxxxx site be leverage as?…client wants us to do digital presentation:

Is there any way we can leverage our website code into a digital presentation??

if you can…please put pricing together…

I couldn’t believe I got that request immediately after going back and forth about how I needed at least some rudimentary info if I’m going to put together an estimate that is at all useful.  So I responded:

No problem, but I need a better idea of what you’d like to do with it.

And I got back:

More detail is as follows…it would be taking the theme of the site and focusing on the gallery…adding projects that we’ve worked on/capabilities.

How many in the gallery..? ….I don’t have a number yet…but you may want to say x # of items in the gallery $$….

I admit it was silly of me to not be more specific in my response so that they were forced to confirm/deny/clarify whatever it is they are looking for. I had a feeling that this was a 100% exploratory type of thing, and I suspected it would never really turn into a paying project. So I told them that if they wanted to dump the site on a disk or something like that, no problem. It’s a simple site with no back end at all. If they want to expand their gallery section, we can do that, but I need an idea of what they want to do. Right now it’s just thumbnails that don’t link to anything and don’t have any additional info. No biggie if they want to just add thumbnails, but I couldn’t see where that would be very useful. If they want something more in depth, that’s certainly possible, but I need an idea of what they would like before I can estimate it.

I never heard back. Of course I’m not going to do an estimate, because I can’t.  Ugh. These are good people, I’m sure. This is a new client for me, so I don’t know them very well. They seem nice. Seems maybe they’re stressed, but that’s common. I’m sure they’re smart. So when then are requests like this such a regular occurrence? I really don’t know.

 

 

 

 

 

Posted April 14th, 2011.

Add a comment

Flash – Basic Optimization

This post is really rudimentary from a tech standpoint. If you are even reasonably familiar with Flash you know how to fix the problem I came across.

The Rant

I was called in on a project that caught me off guard. Seriously caught me off guard.  I got the call from a marketing agency whose potential clients we telling them that their site took too long to load. So I checked it out… and I waited… and waited.  Thirty (3-0) seconds later, the site started up. Thirty seconds. On pretty fast cable broadband. Unbelievable. AND, worse, it was a 100% Flash site.  Ugh.  Ok, full disclosure: I’m a big fan of Flash. I know Steve Jobs supposedly killed Flash, or more accurately, he wishes he could kill Flash. He did get the ball rolling, but there were many reasons to hate Flash before Mr. Jobs went on a tear. From my perspective the problem is not the tool, it’s what some people choose to do with it. Anyway, that’s an entirely different topic, and one that plenty of others are going back and forth on. My point is that this site was an example of exactly what *not* to do with Flash. Just horrid. It was over 21MB of one gigantic swf. A single file that all had to load before *anything* would happen on the site. Not even a real loader of any sort.

Of course after experiencing the pain of the existing site I had to look up the person who built the site. Interestingly their own site was not 100% Flash, it looked good and worked pretty well. So why did they choose to build the agency’s site that way? You may ask why did an agency like that outsource building their own web site, but, well, it happens. Why did they ever pay for that site is certainly a realistic question to ask though.

As is usually the case, the agency had very little money for the project. I gave them the pitch any reasonable developer would – rebuild the site with minimal Flash, make it much more SEO compliant and get rid of all the bulk. Once they shot that whole idea down I got right to seeing what I could to to speed things up and keep it all looking exactly the same.

Round 1

First I took a look at all the imported bitmaps. Every one of them was set to 100% quality. Similarly, the publish settings for bitmaps was 100%.  I’ve almost never seen a case where 100% was significantly better than about 80%, so I reduced the overall publish settings. Since the look of the site is sort of grunge, I went a little further and knocked the quality setting down to 70%.  Then I went through each bitmap, and reduced the quality as far as I could.  There were a number of very large graphic elements used as transitions – they slide past as the background changes. You barely see them.  They’re large. And they were all set to 100% quality.  I knocked them all down to about 15%.  Then I repackaged the whole mess.  With no serious changes the swf file was 8MB smaller than the original.  Still way too big, but better. So I sent it to the client, told them to put it on their server and told them I’d see what else I could do.

Round 2

Without going into too much detail, I spent the next couple of days pulling out as much content as I could and splitting it into separate swf files that could be loaded into one main module. Ultimately, I could only pull out 4 out of 7 sections, but it turned out those 4 sections contained about 90% of the bulk of the site. So I left the 3 small sections in the core module, and pulled out all the over sized graphic elements to load externally as well. I used the standard method of loading external content into movie clips. Nothing at all tricky. The final result was a core module that was less than 2Mb – still way too big of course, but as small as I could get it given the time I had and the money the client had. And because of the way the site worked, the load time is now negligible. There is a loader, but the way it works makes it look like the site starts working right away.  So the client was really happy.

Postscript

The result of this project feels a bit strange. On the one hand, it’s satisfying to make a big difference and make the client happy, but the original site was SO incredibly poorly designed that it’s not an ego boost or anything, I feel like I did what should have been done initially, because that’s true, and even though the client was ecstatic at the result, the site still sucks pretty badly. Ultimately it was just a frustrating situation. A tool I like being used in *exactly* the way that it’s critics like to pick on. But it wasn’t the fault of the tool.  And my improvements don’t change the fact that the site should still be completely redone, not in Flash. I still like Flash for many reasons, but that’s for another time. Maybe.

 

 

Posted April 10th, 2011.

Add a comment