There comes a time after you’ve done the same thing for a while that you begin to feel like you’re an expert. That’s awesome for you. A great feeling. A feeling where you feel like you’re in absolute control. That’s also where a comfort zone is created – and although good, it can often prevent you from exploring new things. Things that you would love if tried, but you’re too scared because what you’re doing works. Try to step out of your comfort zone once or twice. It may feel weird at first, but after you get the basics down, it may be better than what you were doing previously! If not, oh well – you were good at something before that. Don’t ever settle for just good and stay complacent. Keep it moving until it’s perfect. And then make it even better.

Read More

It seems like every time a free, popular product gets shut down or “acquihired”, an uproar comes up on the social networks. But should you really be surprised when a product goes away when everything was free? How exactly did you expect the developer to pay their bills and maintain the product you loved so very much? You should seriously avoid using products that do not ask for money. It should come as no surprise that your favorite product is shutting down or the developer sold the project to a bigger company when revenue was not properly planned. If you absolutely love a product that you currently use, make sure that the developer is generating some sort of revenue. It’s unrealistic to run a product without any sort of money coming in. It’s even better if the product you use has some sort of recurring revenue plan. Products that only require a one time payment have to gain an incredible customer base to cover on-going costs. With money coming in, aside from operation costs being taken care of, the developer will be constantly motivated to improve the product on a regular basis. In the end, opt to use products that you know earn the developer money. Even if you’re not the one paying, others might. Money coming in to a developer assures that the product you love to use stays around. P.S. This is not directed at the Google Reader situation. Just a general discussion.

Read More

Although Google Chrome is *essentially* nothing more than a UIWebView skin on iOS, it’s still a much better browsing experience overall. The one thing that really kills Chrome is the fact that all apps will launch in Safari by default. But there’s a way to prevent this. It takes co-operation from all of the major developers, but if implemented, could be really, really cool. Here’s a quick run down on how it works: When the user clicks the “Open In Web Browser” option, here’s the code that needs to be implemented in order to default to Chrome, but fallback to Safari if Chrome is not installed. 1 2 3 4 5 if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@”googlechrome:”]]) {     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@”googlechrome://%@”, myURL]]]; } else {     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:myURL]]; } Why is this a good idea? If a user has Chrome installed, chances are they wish that it would be their default browser. And this method works. Very well, actually. Again, just an afternoon’s thought. But it would be awesome to see it come together. Agree? Disagree? I’d love to know why. Email or tweet me. Update: A lot of people have emailed/tweeted me saying that it’s unfair for me to say that Chrome is “just a UIWebView skin”. I definitely didn’t mean to downplay the hard work that went into making Chrome for iOS. The speed difference doesn’t bother me, and it’s my default browser on all my iOS devices. I simply meant that due to Apple’s restrictions, Chrome uses the UIWebView without all of the awesome things that make Chrome, Chrome.

Read More

Creating an iOS web app is extremely simple, yet extremely underrated. Advantages to web apps include being able to instantly “push” updates of your app, not having to go through the Apple approval process, and multi device compatibility. Making your web app feel like a native app is not so hard, and with the following HTML tags, your app should be looking good in no time. Please note that all of the following tags go in between your HTML’s <head></head> tags. Setting the application’s icon The application icon is what the user will see when they add your web app to the home screen. <link rel=”apple-touch-icon” href=”app_icon.png”/> If you don’t want the gloss, use this instead <link rel=”apple-touch-icon-precomposed” href=”app_icon.png”/>   Setting the application’s loading image If you’ve used an iPhone app before, you know that before being able to use the application, a “splash” image shows up until the app is done loading. Setting this in your web app is super easy as well, here’s the tag you use – <link rel=”apple-touch-startup-image” href=”loading_image.png” />   Make the application “Full Screen” If you want to hide the Safari navigation controls so that your application appears “Full Screen”, the following line will do the trick. <meta name=”apple-mobile-web-app-capable” content=”yes” />   Changing status bar types iOS has several different types of status bars. Black, translucent and the default white gradient bar. If you don’t want the default white bar, here are the different META tags that can be used to switch them up Default <meta name=”apple-mobile-web-app-status-bar-style” content=”default” /> Black <meta name=”apple-mobile-web-app-status-bar-style” content=”black”  /> Black Translucent <meta name=”apple-mobile-web-app-status-bar-style” content=”black-translucent”  />   Allowing your user to scale your app If you don’t want your user to be able to pinch to zoom in / out of your app, the following tag will help you out. <meta name=”viewport” content = “width = device-width, user-scalable = no”   />

Read More

If your project is accepting user input and you’re using MySQL, you’ll probably want to take a look at data sanitation. Luckily for you, I have a really useful function that takes your user’s input and sanitizes it so that it’s safe for database use. The function: function safedata($original) { return mysql_real_escape_string(stripslashes(strip_tags( htmlspecialchars(trim($original))))); } How to use the function: $username = safedata($_POST[‘username’]); // That’s all you need! Please note that in order for this function to work properly, you’ll need to be connected to a database.

Read More