Stepped into the era of cross-platform development
The notion of cross-platform development has a long history, but it has never been attention by each big manufacturer.Google, Facebook, Intel, Microsoft launched major initiatives, support and promote development compatible with Android, iOS, App developers, such as Windows Phone platform application.Many languages, platforms, and face, terminal adaptation and development of the problems such as high cost, App developers themselves are eager to have the ability to cross-platform development, in order to achieve lower development costs, shorten the development cycle, increase the purpose of business income.Cross-platform development era has come, you ready?
Popular cross-platform development tools
In the past year, the industry has emerged a large number of excellent cross-platform development tools, main roughly is divided into three categories: Web applications and Native applications, mixed applications.
Adaptive Web design (also known as "responsive Web design", as shown in figure 1), is a kind of current popular Web design technology, is a kind of online Web applications.The design makes web pages can be according to the characteristics of the access device in different style style to show.That is to say, can let a web site on the phone, show as a local application, as long as the user input on the mobile browser url you can use the function of the "application".This saves the cost of developing the App, also don't have to for updates on each App store App worry - as long as the website updated, the user's "App" will be updated.Nowadays more popular such framework are: the Bootstrap, Pure, Foundation, Ink, Skeleton, ChocolateChip - UI, and so on.
Hybrid (mixed) mode application development, it is essentially a mechanism of middleware application framework, someone described it as "Native plays, act in an opera in HTML 5", recently under a lot of the development team, has become a mainstream development mode.Titanium, AppCan, ionicFramework etc are the most famous of these, especially AppCan as domestic goods, because of the strong localization documentation and technical support, a large number of domestic developers was concerned.Web front-end developer can almost zero cost involved, quickly make a nice UI and meet the demand of most of the cross-platform.Whether in what system, the hybrid application can realize interaction experience are almost identical.
Xamarin, although we can organize more team or hire stack programmer way, all of them, and for each platform use Native languages and development tools to develop the Native version of the same application, realize cross-platform, but the high cost of it, and the application life cycle is difficult to control.Xamarin will be a programming language to fix all
the Native App development platform, the language is c #.Nowadays there are a lot of people still take the c # language. NET do equivalent cognitive, that c # can only write..net applications, and can only be run on Microsoft platform, this is a very wrong idea.Is a kind of excellent computer programming language, c #. NET, Mono, but also can write unmanaged applications, even the operating system.Mono Xamarin is open source project the commercial operation of the company, it's also called Xamarin cross-platform development tool name.Xamarin system can use c # call each platform's native UI and the underlying API, high degree to ensure the application performance and UI fluency.Use Xamarin develop cross-platform application, you can easily use many of the advanced features of c # language and third-party libraries, such as LINQ, Lambdas, XDocument, events and entrust, parallel computing, JSON.NET, etc.Under the commercial version of the subscription, also can use the Visual Studio development, of course, you can also use TFS make team work more convenient.It is important to note that the most popular game engine Unity is mainly developed in c #.
LiveCode is a relatively special cross-platform development tools, it USES the way almost human language development and application, makes the efficiency of developing a simple application increased dramatically, and quite friendly.Their clients are extremely heavyweight companies such as major airlines.
Cross-platform development tools
Web applications can be fully developed by Web front-end engineer, as long as the smart devices connected to the network and install the appropriate browser can be accessed through the URL "application", and as long as the Web engineer update the file on the server, you can achieve this "application" update, both time cost and maintenance cost is very low.But it is precisely the advantages of the Web application has led to its shortcomings as follows.
1. The Web application must be wired access, in the case of network condition is bad start will be very slow.And every time they start because of network access and download the UI resources (such as picture), wastes the user mobile phone flow, this under the condition of 2 g network will be especially obvious.If the optimization is not good, may also cause the user mobile phone owe downtime.
Almost impossible to use equipment local API, especially the underlying API, which makes the ability of Web application is very limited.
HTML 5 Local Storage technology in Local offline access to data.But since called hybrid application, cannot avoid the disadvantage of hybrid technology.
1. Web page rendering is limited to CSS, while it is possible to reach all sorts of equipment is almost the same UI interactions, but lost the platform's default interaction habits, and Native App form experience difference, increase the cost of single user study, reduces the platform application identity.
Various smartphone platform on its built-in browser kernel is mostly done some customized "improvement", for some event handling differences, especially on Android, there are thousands of different equipment in the whole world, and the difference between the operating system version, in the true sense of cross-platform Web App is hard to do.
2. Although it is mixed application, but the application is still not out of the browser interface, the hybrid application still cannot reach the performance and smoothness of the Native App.
(3) for the operation of the unstable network environment is difficult to refine the control, under the condition of complex user experience may be very poor.
4. In the aspect of memory management is almost incompetent, often creating application crash.
Xamarin can through the c # language to write the mainstream platform of real Native App, through its powerful compiler to balance the efficiency of application development and application of the execution efficiency, especially for programmers using c # development, is a great temptation.Google, apple, Microsoft, the big three and their cooperation has a deep relationship, this makes Xamarin always launch new platform SDK for the first time.IOS7, for example, iOS7 release in the afternoon, Xamarin will follow up official version released iOS7 SDK, which makes the App developers can almost zero lag to follow up the new system platform of App development.In the north American market, Xamarin development tool has been very hot.Xamarin, of course, at present there are many shortcomings.
2. The iOS application development can do it on Windows, but debugging process is still not out of Mac and team should have at least a Mac machine as the Build of the Host.
(3) for iOS, Android, Windows Phone system platform respectively do UI, has not yet launched a unified visual design tools.But fortunately, currently Xamarin internal has developed a beta, believe that soon can officially published.
4. For individual developers in China, business license version price is a little high, difficult to large-scale popularized.
5. Chinese language materials, is the official and community participation.
Cross-platform development tool selection
Before facing the mainstream cross-platform development plan made some comparison, everyone should have some basic concepts, so, how to choose the most suitable cross-platform development tools, has become a big problem.Here I give some advice, according to own experience for your reference.
1. Choose the development tools like marry her, don't choose the best, to choose the most appropriate.
2. If the development team members have no App development experience, the client application scenario will not be affected by the network, the main functions is to add and delete data, don't need a platform native apis, so a Web App is a good choice, especially responsive design, customer acceptance will be high, especially the enterprise application of the customer.
3. If you need to use a small amount of platform native apis, the application and no more stringent performance requirements, Hybrid application is definitely the best choice, because it has a very high cost performance.
4. When touching the Web performance bottlenecks unbridgeable;Want to use the complete application life cycle;Want to cut Native App development team cost;Want to use a language development, but also want to use the platform of third party libraries, Xamarin is a good choice.Although looks authorized price is not low, but from the point of overall cost, saving a lot.
5. Microsoft in the latest Build meeting WinJS open source, and promised to support iOS and Android platform.Once a goal, it is also a good choice, especially for Windows Phone developers helpless pain.
6. LiveCode to some extent, should be regarded as a kind of more populist programming languages, expect to make everyone can easily develop an App, but as an interpreted language, whether can be accepted by professional developers is a problem worthy to be discussed.