Showing posts from 2013

Installing Command Line Tools on OSX Mavericks

One of the requirements on a Mac for creating a Native Client plugin for Chrome is to have Make installed. A version of Make comes with Command Line tools for Mac. I am using Xcode 5 on OSX Mavericks, but I found that under Xcode Preferences, Command Line tools is no longer listed to be downloaded.

Luckily Alok Yadav at Computers And You has posted an article explaining how to install Command Line Tools on OSX Mavericks. I went this route and it installed easily.

Also, "thekbb" pointed out on Stack Overflow that it can be downloaded from the Apple Developer Center.

Announcing Cost Per Ounce Calculator Lite (Free Version) for iPhone

For those who are not ready to take the plunge and buy the paid version, I am pleased to announce the availability of the Lite version for iOS. This version allows iPhone users to "try before you buy". Because it is the lite version, it comes with a limit of only being able to enter cost values of $2 or less.

Download Lite (free) Version Now

Cost Per Ounce Calculator Lite - for iPhone
For those who are interested, here are links to the paid version:

Cost Per Ounce Calculator (full) - for iPhoneCost Per Once Calculator (full) - for Android

Also if you are interested in counting carbs or calories, please check out my Carb or Calorie Counter app for iPhone.

Comparing Xamarin and Delphi XE5 to Xcode for Cross Platform Mobile App Development

If you are considering developing cross-platform mobile apps, two of the platforms you may encounter are Xamarin and Delphi XE5.

I created the starter application for a Master Detail app for iPad using Xamarin and Delphi XE5. My findings are outlined below.

Generates what looks like exactly the same project as XCode.The app contains Add, Edit and Delete buttons that are hooked up and working. (Just like the Xcode project.)When you rotate the screen to portrait mode, the menu hides and can be shown again by tapping the menu button at the top left. (Just like the Xcode project.)After scrolling and stopping, I tap a menu item and it immediately opens that item on the right. (Just like the Xcode project.) This is the behavior I expected. This is how the email app that comes with iOS works.If I scroll and stop, then lift my finger, the scrollbar goes away almost immediately so I can tap another item. (Just like the Xcode project.) That is expected behavior.If the app is in landscape…

Delphi XE5 for Native Cross Platform Mobile Development

Today I used the demo version of Delphi XE5 to get a cross platform test app working on a Galaxy Note 2, an iPhone 5, and an iPad 4 all using the same source code from the same project. I was even able to perform animation to the dimensions of an image component and have it work across all three devices.

If you are looking for an alternative to PhoneGap, Titanium, or Xamarin (MonoTouch) then I recommend giving Delphi XE5 a try.

A few things I like about it so far are:
The resulting app is native, unlike PhoneGap apps that run in a web view.The button click did not have a delay like HTML apps can have that you might use with PhoneGap.I was able to re-use 100% of the project for both platforms -- yes even the UI unlike the drawback that Xamarin has.The animation was very smooth on the iPhone 5 and iPad 4. It was also smooth on the Galaxy Note 2, but not quite smooth as on the Apple devices. I am a little concerned on how the animation would appear on an older Android device. However any an…

Quick Tap and Scrolling Issues in Mobile Web App Development

Today I started developing a jQuery plugin which is designed to eliminate the delay that the browser experiences on click events within mobile web apps.

I wanted it to do the following:
Trigger the onclick event sooner to feel more native.Highlight the button when the user started the touch.Unhighlight the button if the user started to scroll or when the user ended the tap event. I did get it to trigger the onclick event sooner, but I ran into some problems with the highlighting: On the iPhone 5 and iPod Touch 4, when scrolling (using -webkit-overflow-scrolling:touch), and then tapping while the scroll is still going, the wrong button would get highlighted. (Removing -webkit-overflow-scrolling:touch resolved the issue, but then my list didn't scroll like a native app.)On the iPod Touch 4 sometimes when just tapping it would only highlight part of the button (either the top or bottom depending on where on the button I tapped.) (Removing -webkit-overflow-scrolling:touch resolved the i…

Comparing Mobile Web, Hybrid, Cross Platform Native, and Fully NativeApp Development

If you are considering making an app, then there are several options available to you. It basically comes down to how much time and money you want to spend in development for different platforms versus how native you want your app to feel.
1. Web App Development Web App Development is where you write your app in HTML and JavaScript and it resides only on the web. 
The benefit is that you can write it once, and potentially use it on different mobile platforms as well as desktop platforms.
The drawback is that the user must have an Internet connection to use the app.
There is a meta tag you can put on the app to allow iOS devices to place it as an app on the home screen, but every time you tap the icon, the app does a full refresh, which can be annoying if you are multitasking.  I tried to work around it by using caching, but couldn't get it to work. maybe I just did something wrong though, and maybe there is a good workaround out there somewhere. 2. Hybrid Development Hybrid Devel…

Performance Problems Found in Mobile Web App Development

These aren't perfect statistics, but the basic idea of how my experience went when testing mobile web development on 5 mobile devices went something like this:

iPhone 5 (using Safari on iOS 6.1.4)
Linear gradient on the buttons worked.Rendering 1,000 buttons took about .75 seconds.Scrolling the div containing the buttons was very good. Nothing was hidden unless I scrolled really fast. Rendering was quick to catch up though.Hiding one button after rendering the thousand buttons was instant.Showing an image with a background image was instant after the images were cached.iPod Touch 4 (using Safari on iOS 6.1.3)
Linear gradient on the buttons worked.Rendering 1,000 buttons took about 1.5 seconds.Scrolling the div containing the buttons was pretty good. Nothing was hidden unless I scrolled kind of fast. Rendering was slower to catch up than the iPhone 5.Hiding one button after rendering the thousand buttons was instant.Showing an image with a background image was instant after the image…

Hybrid vs Native Android App Comparison

A while back I did a File Size and Startup Time Comparison of Android Apps using App Inventor versus the Android SDK. Android SDK was the winner.

Now I have done a comparison of Hybrid (using PhoneGap compiled on PhoneGap Build) vs Native (using the Android SDK).

Below are are my results for a very simple app using the Galaxy Note 2 as the test device. If you are concerned about speed, native is the winner in my book.

Android SDK

File size before install: ~162 KBFile size after install: 652 KBStartup time: Less than half a secondNotes: Tapping the Clear Textbox button had what seemed like instant responses.


File size before install: 349 KBFile size after install: 1 MBStartup time: About 2.5 secondsNotes: Tapping the Clear Textbox button had a somewhat laggy response, but not too extreme.

Introducing Moon Tug for iPad

I have developed and released an iPad game called Moon Tug. It is a two player game where you try to pull the moon to your own planet before the other player does. You can also shoot the other player's controls to disable them for a limited time. When the UFO appears, tap it to get an extra pull boost.

Check it out here: Moon Tug (The screenshots below are more up to date than the ones at the link.)

Introducing Carb or Calorie Counter for iPhone

A few months ago I built another iPhone app called Carb or Calorie Counter. It gives you a week view of entries where you can track how many carbs (or calories) you consume at each meal. Then it shows you a total for each day at the bottom. When the week is up, simply start over by clearing out a day column by tapping the button at the bottom. You can start using it on any day of the week.

Check it out here: Carb or Calorie Counter.

Introduction to Selenium WebDriver

Selenium WebDriver lets you write code to perform automated tests of web pages. Unlike Selenium IDE (which records clicks that you perform in the browser and plays them back), WebDriver requires you to write code to connect to the API which controls the browser. The code can be written in Java, C# or a few other languages.

The Selenium WebDriver documentation has some good instructions, but while following them, I ran into a few hitches, but was able to find the answers I needed from other pages on the internet. Hopefully I have referenced those other pages correctly.
Obtaining Selenium WebDriver for Use with JavaInstall Apache Maven. This will be used for downloading a project that can be imported into Eclipse or NetBeans.Create the pom.xml file shown on the WebDriver documentation page.Make sure to update the XML file with any potentially updated information on the Maven Download page.Add the Maven installation directory to your PATH.In the command prompt, navigate to the directory …

Introduction to Selenium IDE

Selenium IDE is a plugin for Firefox that allows Quality Assurance representatives to test web based software or websites. It works similar to how macros work.
Installing Selenium IDEUsing Firefox, go to the SeleniumHQ download page and under the Selenium IDE section, click the download link. (At the time of this writing there was a link to the released version as well as an unreleased version. I chose version 1.10.0.)Firefox will prompt you to install the plugin. Click Allow, then Install Now.Restart firefox.You are now ready to perform your first automated test. Your First Automated Test in Selenium IDE Prerequisite: Selenium IDE must be installed. (See above) Using Firefox, browse to the web application or web site you would like to test.Press CTRL-ALT-S to open Selenium IDE along-side of Firefox.You should see the web address from Firefox now showing at the top of Selenium IDE in the Base URL text box.Notice the red circle towards the top right. It is highlighted, indicating that i…