Categories
Business iPhone app

Going east: China iOS app dev companies and potential market

Reading Time: 3 minutes

(Update 05-10-2014) I saw the IPO of China based Cheetah Mobile in the news, not too impressed or confident of their apps though, although I know they make money. Cheetah was a subsidiary of Kingsoft (and King still has a big stake after IPO). I also noticed the WSJ article about China app market. I know a lot has changed since I last wrote about this, which is 3 years ago. From my personal observations, smartphone especially iPhone is saturated.

(Original 05-29-2011) I prepared the following summary for 360 iDev conference this fall at Denver. The talk did not make into the agenda, but I think it may be interesting to some western iOS (mobile) developers. After all, the market has great potentials.

Some background
iPhone officially came to China late 2009, but iPhone 1G came to China shortly after the US launch in Summer 2007. The first Apple store opened in Beijing July 2008. According to Steve Jobs Sept 2010 music event and Apple Q4 2010 earning report, greater China is the fastest growing market. Chinese costumers are snapping up iPod, iPhone, iPad and Macs quickly. How about apps? In this talk, we will discuss the China iOS app development companies (some have their apps featured by Apple), the current status of China iOS apps and the potential of iOS app markets (both consumer and enterprises).

Xujiahui

Some notable China based iOS development companies
139.me (Its Colorful Aquarium app was featured by Apple).
Rye Studio (featured article on San Jose Mercury News here).

Categories
iPhone app

A few iOS gotchas: NSDate copy, sleep and multitask

Reading Time: 2 minutes

I was working on a new app and this app has something to do with timing. Basically I need to record the time between a button being displayed and the time a user touches the button (note they are in two different functions).

NSDate and memory leak
To accomplish this, I am using NSDate class, I declared NSDate * start in the class,
and then in one function, I was doing
start = [NSDate date];

and in the second function, I was doing
NSDate *methodFinish = [NSDate date];
NSTimeInterval intervalTime = [methodFinish timeIntervalSinceDate:start];

But the code above crashes immediately. After some research I believe this has something to do with memory, if we copy (retain) the NSDate as suggested by this thread in iphonedevsdk.com. It worked.

NSDate* now = [NSDate date]; // unretained
start = [now copy]; // retained

Sleep

Categories
iPhone app

Distribute Ad Hoc Application over the air OTA: some tips

Reading Time: < 1 minute

(Update 08-29-2014) As of iOS 7, this functionality needs some tweak. See this thread on stack overflow and this post. The gist of the change is Apple disabled http, it needs https now.

(Original 05-14-2011) I was following John Muchow’s tutorial “Distribute Ad Hoc Applications over the air OTA“. It worked as expected until the last step, when I click the link on my iPad 1, it says “can not download the app…”.

Did google on this, found one relevant discussion on stackoverflow. I was using my web hosting company web interface uploading the file, so I switched to ftp, changed to binary mode. Same results.

I realized my iPad 1 was still at iOS 4.2.1, while my Xcode was building 4.3 target. So I changed the target to 4.2 (in Xcode => Project Setting => build target), and repeated relevant steps in the tutorial (mainly to create the .ipa and .plist). Things worked after I made the change.

Btw, I found Xcode 3.2.6 build-in capability to share and distribute (submit to app store) is cool.
Xcode build and archive

Categories
iPhone app

Apple iTunes Connect Financial Report

Reading Time: 2 minutes

If you are iOS developer who has sold app (or ads, in-app purchase) on iTunes App store, the iTunes connect Financial Report is no stranger to you. Personally I published my 1st paid app to the App store last Sept, and I have since received financial report email notifications, and direct deposit. I did not pay much attention to the dates because the earnings are small amounts. I do understand Apple does things in its own fiscal calendar (developer can get it after log into iTunes Connect).

That is until recently, I found an interesting phenomena or glitch if you well. It took me a while to figure out the answer. Basically as of today I have not received the financial report for April, while I received the March earnings report on March 31. So I went to the “Payments and Financial Reports” section after log in iTunes Connect, and click the “Owed” tab, I noticed I received February Financial Report on March 18, and January report on Feb 18. See the patten here? Apple says it usually releases report 30 days after the month closes. Quote Apple (I got this answer from “Contact US”, then select appropriate topic:)

When/how will I receive financial reports?
Financial reports are distributed once a month and are available for download exclusively through the Payments and Financial Reports module of iTunes Connect. Financial reports are generally available for a given month by the end of the following month.

So this confirms my theory: Apple releases March report earlier than usual, which leads me to think it would release April report shortly after month closes. The usual time frame is around May 18.

Related question: when will I get paid?
Apple is quite consistent on this, it appears to me they do direct deposit 15 days after issuing financial report. This of course assumes:
1) A developer has set up the bank and tax information, agree with the contract (aka paper work);
2) Meets Apple’s threshold of $150 (it appears to me this rule is not strictly enforced).

Bonus question: why Apple release March report earlier?
hint: think about its fiscal calendar again 🙂

Categories
iPhone app

Top 10 questions asked by new iOS developers: I

Reading Time: 2 minutes

Top 10 misconception or mysteries facing new iOS developers. Summarized from my observations and own experience. Part 1.

Free app or paid app?
This is a big question. Apple iTunes app store is not a freebie store (compared to many other app stores), that being said, most downloaded apps are either free or cost 99 cents. It’s hard to make a living on 99 cents apps and at the same time providing free upgrades. Apple does provide other revenue models such as Ads (iAd and other ads) and in-app purchase. I have not tried those, and I think ads are good for app with a lot of downloads (at least 10,000, or 50,000), and in-app purchase are good for certain app or features.

Ads or No Ads?
I remember Mike Lee, a pioneer in iOS app development, once said don’t annoy users by Ads. That being said, we all need the money to live, again I think if we can make some Ads money without really annoying users. That’s ok.

Universal App or separate iPhone/iPad apps?
Tough question. Again it depends. I remember Kirby Turner said a few things on this topic at VTM last fall. His suggestion is do it when “functionality is same or similar for iPhone/iPad apps”, and “enhanced user experience”, on the other hand not to do it when “Functionality differs greatly”, and “business justifications”.

Categories
iPhone app Software development Web

Software updates

Reading Time: 2 minutes

WordPress 3.1.1
Finally I got hands around my blog (this one stlplace) and did the WordPress upgrade. I put off the upgrade in the past primarily due to my laziness: there is no automatic update due to I was running on WP 2.0.2. The upgrade itself is not too bad, I followed those two articles on Backup database and Run manual update. I used phpMyAdmin for the WP database backup. For the WP upgrade the only tricky part for me is:

“…Upload the individual files from the new wp-content folder to your existing wp-content folder, overwriting existing files. Do NOT delete your existing wp-content folder. Do NOT delete any files or folders in your existing wp-content directory (except for the one being overwritten by new files)…”

I know “directory overwriting” generally works on Windows system, but we are talking about UNIX (Linux to be precise). The command I used goes like this (in the blog root directory):

cp -r -u new_wp-content_dir .
(here -r means recursive for directories; -u means update)
I believe it did the trick, as I can run upgrade database afterwards. After that I enabled the necessary plugins. The only plugin stopped working is the ultimate warrior tags. The rest are fine.

Btw, I also added WPtouch plugin so that this blog works better on iPhone.

Xcode 3.2.6
I found my old Xcode 3.2.2 can not handle block as it’s necessary to run Ray’s RSS reader example. Download the software from Apple, install, and found this “Base SDK missing” in the new Xcode. Did some google, the trick is to “use latest SDK” in the “project => build” setting. I noticed we can also build “older” targets by changing the target in “deployment target”. Obviously there is a limit as to how far we can go back (I have not checked that yet).

Btw, I found the iPhone 4 simulator looks cooler than iPhone 3 simulator 🙂

Categories
Life Tips

Furnace, hot water heater and car battery

Reading Time: 3 minutes

First I want to express sympathy to the Japanese people affected by the natural disaster/nuclear reactor problem. Being Chinese, I’m conscious of the long history (some good, some bad) between the two countries and two people. But on this biggest crisis for Japan since world war II, I felt sorry for the people, and doing my part to help.

In last few days, personally I have also had some minor problem at my house. Nothing as bad as things happened in Japan, but still inconvenient as (you can see) I am spoiled in the USA.

Minor scare
Last Thursday, at about 11:30 am, my wife called me at work saying there is unknown source of smoke in our condo. I told her turn off heat (electrical furnace), open the door, dress up the baby, and get out the house if needed. Meanwhile I drove home quickly. After got home, I could smell the burning but could not find the source either. I called 911.

Police came, he think it’s the “hibernating” old laptop causing the smoke. Fire fighters came, look around a little bit, asked where is the furnace. I told him, and he opened, that’s it: the connection piece of duct is made of plastic/cotton, and is burning!

Hot water heater
We called Kevin Schaffer of Cool Running AC and Heating, he came quickly and fixed the furnace. He put new sheet-metal to replace the old connection piece.

Thursday evening, after we gave the baby a bath and hair wash, we ran out of hot water. Called my friend who had similar problem recently, opened the control panel of the electrical hot water heater, reset, did not help. Flip the switch at electric panel, nothing. Tried to drain the water heater, no hot water came out. Called an authorized dealer of the hot water heater brand I have (Rheem, Ruudglas PE52-2), and the technician came in the afternoon. He said there is no power at the water heater, suggested replace the corresponding breaker at electric panel. Called electrician appointment the earliest I can get is Monday morning.

Categories
401k and Personal Finance Business

Top Ten Mistakes Made by Financial Agents and How to Prevent Them

Reading Time: 2 minutes

The following is a guest post created by Ashley B. Mulvey who writes for financial advisor career advice , her interest blog she uses to share her knowledge to assist people cope with the facets of economic advisory.

Financial Advisers can have great careers and be real assets to their communities, but they can fall prey to avoidable faults. Mistakes 1 through 6 cover ethical concerns and 7 through 10 cover business strategy and personal concerns.

1) Making uninformed choices.
In order to prevent mistakes, be sure to double check proper rates and information about the product(s) you are offering.

2) Fraud
In order to stop fraud, go into your consultations with the attitude that you are going to do what is ideal for the customer whether or not you make the sale.

3) Signing an application with fields left blank.
Make sure that the application is fully filled out before signing it.

4) Asking for a check in the adviser’s name.
This should never be done, because premiums or payments from clients belong to the company under which the adviser is employed and should never be intermingled with the adviser’s personal records.

5) Putting unwanted pressure on the client.
Good salespeople can close a sale without using coercion. Always look out for the client’s best interest.

Categories
Life

Baby is one year old

Reading Time: 2 minutes
Serenity birthday cake
Serenity birthday cake

Quite a few changes lately. The most obvious one, is she likes to talk, which is opposite to her parents (we both don’t talk much). The most common words out of her mouth is “ma ma”, “ba ba” (Chinese words for dad), and more recently something like “done”.

She started to pull up to stand a few months ago, more recently she can move around a table or sofa (where she can finds support). Still, when we put her in the middle of nowhere, she will drop to ground, almost immediately. Maybe we should teach her to work a bit harder 🙂

Learned quite a bit from the past year, some important ones include:
1) Be patient: obviously baby sometimes could be unpredictable, for instance, they cry for no apparent reason sometimes. From my experience, baby cries for reason most of the time, if parents are patient enough, they can find out reason (hungry, want to sleep, baby did not get the thing he/she wants, last but not least got sick).

2) Be happy, don’t worry too much. When I am saying this, I think sometimes I worried too much too. My wife is a typical worried-too-much mom. In recent days she was worried baby’s right eye looks smaller than the left eye, after her eye lid got hit by car door slightly. The doctor did not see any problem during annual exam, and luckily today everything looks normal now, and my wife is happy. BTW, I think my wife spent 10 times effort on baby in last year compared to my effort.

3) Sleep and weight. Baby still prefers be with mommy in the night, she will cry if she cannot see mom and it’s harder for her to fall asleep. This changed a bit in last 2, 3 days as she can fall asleep on her own (not crying for mom all the time).

Weight is a bigger headache, ever since the initial birth weight of 7 lbs (50%), she went as high as 79% in first 2 months, then starts to drop, 35% at 9 month exam, and 23% at one year exam. We probably need to pay more attention on her food and eating habits.

Categories
Life

Fazoli’s

Reading Time: < 1 minute

fazoli's pic

Fazoli’s is fast Italian food restaurant chain. I used to work at a company where there is a nearby Fazoli’s. It’s became my preferred lunch place, after I went there a few times with co-worker (and order Chicken Caesar Sandwich only, because in the beginning I don’t eat pastas, being from China I eat noodles instead).

Today I went there again for lunch, and was very surprised and happy to see a familiar face: a Thai lady who used to work there and I got to know over the years.

Life becomes more interesting and rewarding, when we meet old friends unexpected 🙂

BTW, Fazoli’s menu and utensil got a face lift too, they got rid of the cheap plastic utensils, use the real plate and forks instead. The only thing missing, is I no longer see the old article (1990s) introducing the Fazoli’s as “Italian Food, Fast” concept, maybe they lost it during renovation.