Pages

Saturday, November 21, 2009

Build iPhone application by Flash CS5

This week, we need to decide whether we should choose putting Flash Professional CS5 into research/training targets of next month. Actually, we already had an iPhone team - with senior developers - has much experience on many projects. However, some Flash developers in our company  want to join to iPhone development. So, we need to consider learning roads to help them to join this interesting domain in shortest time.


How Flash CS5 supports developers to create iPhone application

Adobe creates a very clever solution to enable your Flash content to run on the iPhone. They don't create a Flash Player and run your Flash content inside. The Flash Professional CS5 support a iPhone packaging tool converts your Flash content into a real iPhone application. If you have experience on Unity 3D iPhone, you can imagine this as the same packaging tool.

Advantages of Flash CS5

+ Flash Professional CS5 is the only Windows development environment for iPhone Applications. We don't need to prepare expensive Mac computers for iPhone development.
+ There are more than 2 million Flash designers/developers compared to the 65,000 iPhone developers. The Flash community is so big, so it's easier to find solutions for technical issues in development.
+ There are millions of Flash games begging to be converted to run on the iPhone. => this forces Adobe must find a way to support this. It's not temporary, it's a real trend => Adobe solution must be persistent in a long time.
+ Familiar environment/languages with Flash developers => easy to learn.

Disadvantages

+ Adobe can not catch up with new advanced features in latest iPhone SDK. Flash developers can not use latest technologies from Apple immediately.
+ Currently, some video formats are not supported in the Adobe conversion solution (H264 is an example).
+ You cannot use the cool Flash PixelBender technology released last year in your iPhone Apps at this time.
+ The iPhone itself uses a fraction of the power compared to a PC. Be careful what you program. It may look good on your laptop but barely run on your iPhone.

Final conclusion

Flash CS5 for iPhone development is a great news. However, we can not choose something not stable for production. We need to try more before making decision. This will be a research target in R&D team later. Any new technology always needs time for growing and being proved its strength in the real life.

We're very happy to receive your feedback or any good news from this tech.

Thursday, November 12, 2009

How the iPhone locates you?

This article is for my beloved developers - who always want to know what the truth behind the stage is.

All content in this article is based on  iPhone cookbook - a great book for iPhone developers.




Methods for positioning used in iPhone

The iPhone uses three (or possibly four) methods to locate you.These technologies including:
+ GPS Positioning
+ WiFi Positioning
+ Cell Tower Positioning
+ Internet Provider Positioning

GPS Positioning

GPS system tracks your movement courtesy of a series of medium Earth orbit satellites provided by the U.S. Department of Defense. These satellites emit microwave signals, which your iPhone picks up and uses to triangulate your position to a high level of accuracy. Like any GPS system, this requires a clear path between you and the satellites, so it works best outdoors and away from trees.

WiFi Positioning

Core Location’s preferred pseudo-GPS geopositioning method calls on Wifi-positioning service provided by SkyHook Wireless.

SkyHook offers extremely accurate WiFi placement. When an iPhone knows the WiFi and WiMax routers you are near, it uses their MAC addresses to search SkyHook’s databases, positioning you from that data.

This way provides pretty accurate positioning and can usually locate you within a few hundred feet of your actual location

Cell Tower Positioning

Currently, iPhone use cell tower positioning service through:
+ Google Maps cell tower positioning.
+ SkyHook cell tower positioning (not sure 100%).

By this way, the iPhone uses its antenna to find the nearest four or five cell towers (of the service providers) and then triangulates your position based on the cell tower signal strength. You’ve probably seen cell tower location in action; it’s the kind that shows you about a half mile away from where you are standing—assuming you’re not standing right next to an actual cell tower.

Internet Provider Positioning

This approach uses an Internet provider location to find the nearest mapped Internet provider’s central office. The returned data is typically up to several miles off your actual location—unless you happen to be visiting your Internet provider.
SkyHook actually offers a third positioning approach, but it is never seen the iPhone use.

Hybridizing the Approaches

So, what iPhone acutally works with 4 above methods?

The iPhone approaches location in stages. Based on the accuracy level you request, it uses a fallback method. If it cannot accurately locate you with GPS or SkyHook WiFi mapping, it falls back to the cell tower location of Google Maps. If that doesn’t work, it presumably falls back further to SkyHook Internet provider location. And if that doesn’t work, it finally fails. The latest releases of the SDK actually provide multiple (asynchronous!) success callbacks for each of these fallback methods. You may receive three or four results at any time.

Wednesday, November 4, 2009

Programming language community index 2009

This is the index from Tiobe website of top programming languages until 2009


Position
Oct 2009
Position
Oct 2008
Delta in Position
Programming Language
Ratings
Oct 2009
1
1

Java
18.718%
2
2

C
16.891%
3
5

PHP
10.390%
4
3

C++
9.911%
5
4

(Visual) Basic
8.729%
6
8

C#
4.433%
7
6

Python
3.914%
8
7

Perl
3.776%
9
11

JavaScript
3.033%
10
10

Ruby
2.458%
11
9

Delphi
2.140%
12
13

PL/SQL
1.020%
13
49

Objective-C
0.902%
14
14

SAS
0.805%
15
16

Pascal
0.669%
16
20

ABAP
0.661%
17
19

Lisp/Scheme
0.605%
18
22

MATLAB
0.577%
19
12

D
0.570%
20
15

Lua
0.527%



The long term trends for the top 10 programming languages can be found in the line diagram below.

Predicting trends from this information
+ Some traditional languages as Java, C is down (not too much). These languages will not die (at least in 10 years later) because of the need to develop/maintain enterprise application/ embedded systems.
+ Scripting languages like Ruby, Python are trends at this time.
+ PHP still keeps its position. There are many open source from PHP community with great features. It can offer the cheapest solutions to develop application for small/medium organizations.
+ Objective C is still new but a hot trend because of the need to develop applications on Mac and iPhone.