Native vs Cross Platform - Frameworks

Hi everyone. I know that it's not a new subject, but I think it's a good subject to discuss about. It's the first question for any developer who wants to start a new project as everyday we can see new frameworks and languages comming up for development. After years of development now when I want to start a new project think about it again. It will be great if any one who has any experience can share it here. Because it's the experiences and times that show us if a decision was a good one or not. We can write about different parameters we considered to start a project, challenges and the results. Please feel free to add any other item you think is important to consider.
I start by myself:
Subject: A Network Communication App
Long/Short term consideration: Long term
Target platforms considered at start: android, windows
Target platforms implemented: after 2 years, android, windows, linux, (ios just newly started)
Framework: Qt5 (a cross platform framework)
Challenges: We used a crossplatform framework but as you know any OS has it's considerations and styles for development. Also different frameworks have different capacities for handling these features. In this project one of the challenges we had was the way android handles services and activities. We had to separate our UI from the logic controllers completely and implement a way to communicate between these separated processes. Also we had to implement the OS based features separately for each OS like notifications and alarms. Fortunately Qt let you use native codes for these specific features. For example you can use native java codes for showing a notification or playing system native sounds and alarms.
Pros: We implemented our UI just once and used it for all platforms. Also we implemented network and controller threads once and used them for all platforms. In this way if we need any change in our protocols or UI, we just develop them once. So we have one development team for all of them.
Result: Cross Platform with Qt was a good decision at that time for that project. Specially for a small team like what we had, because after you implement the base of a project like this you have to support it for a long time and add features to it. If we were using native codes, now we had to have separated teams for developing new features and supporting it.
It's great to read about other people stories. So Please let us know about them.
Thanks

Native vs. Cross-Platform
Native apps are developed only for a specific platform. These apps are formed in a language cooperative with the platform. Apple, for instance, prefers Objective C and Swift for iOS while Google supports Java for Android. Using these satisfactory languages, developers can create safer use of the inherent features of these platforms. A native app developed for Android will not function on iOS and vice versa.
Cross-platform apps are cooperative with various platforms. Due to the market share of Android and iOS, most cross-platform apps are confined to these two operating systems. These apps are produced in HTML and CSS since these official web technologies are platform-independent. Several cross-platform application development tools enable developers to create these apps with little trouble.

Related

Silvia for Android?

Is this just another Siri clone or is it closer to "AI" (define as you will). Is anyone here involved in this?
http://www.kickstarter.com/projects/cogcode/silvia-for-android
I searched "silvia" and "silvia for android" before posting this thread. If this question or topic has been posted before, or if this is in the wrong place, I apologize.
MichaelHaley said:
Is this just another Siri clone or is it closer to "AI" (define as you will). Is anyone here involved in this?
...
I searched "silvia" and "silvia for android" before posting this thread. If this question or topic has been posted before, or if this is in the wrong place, I apologize.
Click to expand...
Click to collapse
Hi Michael,
Prior to our launch of our SILVIA for Android Kickstarter project this past Friday (May 25th), we have been fairly quiet about SILVIA for Android.
So, you may not find much 3rd party information on SILVIA for Android, at least for a while.
However, we will be happy to answer your questions as best we can.
First off, we think that Siri is a fine product.
Of course, we feel we have something different and unique to offer with our technology, otherwise we would not be doing what we're doing.
We think that our context sensitive conversational approach to the user experience is very compelling for many reasons, and we also think it is an important difference that our technology runs natively on mobile devices.
For developers, we are offering an SDK with a rich API, a graphical content development system, and a runtime engine that will allow developers to create new conversational applications for Android that run right on the device. For smaller developers, this is very important because there is no requirement for additional (and expensive) server infrastructure to host the AI.
We think that another important feature is the compactness and efficiency of our runtime. The average SILVIA for Android end-user application clocks in at about 7 or 8 megabytes on the device, and is efficient enough to run in the background without disrupting the performance of most other applications.
We will continue to release more details for developers over the next few weeks as our Kickstarter campaign progresses.
I hope this information helps.
Right on, looks pretty interesting, hope to see it available soon!
CogCode said:
Hi Michael,
Prior to our launch of our SILVIA for Android Kickstarter project this past Friday (May 25th), we have been fairly quiet about SILVIA for Android.
So, you may not find much 3rd party information on SILVIA for Android, at least for a while.
However, we will be happy to answer your questions as best we can.
First off, we think that Siri is a fine product.
Of course, we feel we have something different and unique to offer with our technology, otherwise we would not be doing what we're doing.
We think that our context sensitive conversational approach to the user experience is very compelling for many reasons, and we also think it is an important difference that our technology runs natively on mobile devices.
For developers, we are offering an SDK with a rich API, a graphical content development system, and a runtime engine that will allow developers to create new conversational applications for Android that run right on the device. For smaller developers, this is very important because there is no requirement for additional (and expensive) server infrastructure to host the AI.
We think that another important feature is the compactness and efficiency of our runtime. The average SILVIA for Android end-user application clocks in at about 7 or 8 megabytes on the device, and is efficient enough to run in the background without disrupting the performance of most other applications.
We will continue to release more details for developers over the next few weeks as our Kickstarter campaign progresses.
I hope this information helps.
Click to expand...
Click to collapse
We are definitely covering SILVIA and this project
http://www.androrev.com/2012/05/31/...-why-she-may-just-be-androids-answer-to-siri/
Developer Update!
Just a quick update, we have some more information for Android developers on our Kickstarter project page.
Unfortunately, due to the low post count, we can't post links yet. But a quick look at the first post in this thread should get you there.
In particular, we think there is some great opportunity for game developers, as our SILVIA Core has already been deployed as a conversational intelligence system in 3D training systems for the US Army. But even casual game and apps developers can quickly integrate SILVIA for Android into their projects.
The SILVIA for Android library can be used directly in just about any native Java or Mono for Android project, but as a bonus for you Unity 3D developers, we will be including a Unity 3D compatible version of our SILVIA for Android runtime library as part of the SDK package.
All the best,
The SILVIA for Android Team
what happened?
Sent from my GT-N7000 using Tapatalk 2

[Q] Which Tool Is Right for Me?

I'm wondering, based on experience witch of these people would recommend for mobile app development. (Please mention which of these you actually have experience using.)
I'm an "old school" developer and am proficient in PHP/PERL, HTML, CSS and Javascript. I don't have time to learn a new language like C# and I refuse to use Microsoft's tolls (like .NET, Visual Studio, etc.) but I would spend the time maybe to pickup up RUBY (or maybe Java) if enough benefit was there in the associated mobile app development tool.
I want as close to native as possible with 90%+ cross-platform solution, meaning, 5-10% of the source code may differ due to differences in platform. I will only be developing for Android and IOS (sorry Windows) but may develop for Windows Down the road. Some apps I may develop may be enterprise class that need to get remote data from SQL Server, etc. I have done research and narrowed down my selection and am looking for further insight from those that have actually used these tools. Things that are also important to me include:
- Low cost (I can't afford to pay $100+ a month in fees)
- Good/Large Developer Community
- Good Support from Maker (good roadmap with improvements, bug fixes frequent, etc.)
PhoneGap - This seems like the most popular but it sounds like the "quickest" route for most web developers that are familiar with HTML and Javascript/CSS but to me it sounds like I might want something that is closer to native being that my primary core knowledge has always been as a coder first, and a web developer/designer second.
Appcellerator Titanium - This seems like the other most popular tool that claims to compile so the app uses the devices native controls (via Titanium API) instead of essentially an HTML page masquarading as an app (like PhoneGap) My gut says this one suits my situation better than Phonegap. Why do people use PhoneGap instead of this, because it's easier for non-programmers?
RhoMobile Rhodes - I am wondering how this compares to the two above assuming I learn RUBY on Rails.
Telerik Icenium (now called AppBuilder) - This one I have found the least discussion about.
I just ran across Codename One too which sounded intriguing as would require me to learn Java.
It seems most everyone (that isn't doing native) is using PhoneGap or Titanium and the second two are lesser known so I'm having a hard time finding people that has at least some brief experience using all four or five of these.
Any insight is greatly appreciated.
jazee said:
I'm wondering, based on experience witch of these people would recommend for mobile app development. (Please mention which of these you actually have experience using.)
I'm an "old school" developer and am proficient in PHP/PERL, HTML, CSS and Javascript. I don't have time to learn a new language like C# and I refuse to use Microsoft's tolls (like .NET, Visual Studio, etc.) but I would spend the time maybe to pickup up RUBY (or maybe Java) if enough benefit was there in the associated mobile app development tool.
I want as close to native as possible with 90%+ cross-platform solution, meaning, 5-10% of the source code may differ due to differences in platform. I will only be developing for Android and IOS (sorry Windows) but may develop for Windows Down the road. Some apps I may develop may be enterprise class that need to get remote data from SQL Server, etc. I have done research and narrowed down my selection and am looking for further insight from those that have actually used these tools. Things that are also important to me include:
- Low cost (I can't afford to pay $100+ a month in fees)
- Good/Large Developer Community
- Good Support from Maker (good roadmap with improvements, bug fixes frequent, etc.)
PhoneGap - This seems like the most popular but it sounds like the "quickest" route for most web developers that are familiar with HTML and Javascript/CSS but to me it sounds like I might want something that is closer to native being that my primary core knowledge has always been as a coder first, and a web developer/designer second.
Appcellerator Titanium - This seems like the other most popular tool that claims to compile so the app uses the devices native controls (via Titanium API) instead of essentially an HTML page masquarading as an app (like PhoneGap) My gut says this one suits my situation better than Phonegap. Why do people use PhoneGap instead of this, because it's easier for non-programmers?
RhoMobile Rhodes - I am wondering how this compares to the two above assuming I learn RUBY on Rails.
Telerik Icenium (now called AppBuilder) - This one I have found the least discussion about.
I just ran across Codename One too which sounded intriguing as would require me to learn Java.
It seems most everyone (that isn't doing native) is using Cordova/PhoneGap or Titanium and the second two are lesser known so I'm having a hard time finding people that has at least some brief experience using all four or five of these.
Any insight is greatly appreciated.
Click to expand...
Click to collapse
Both Phonegap and Appcelerator compile into a native package containing a mix of native and javascript and with both you develop your code using Javascript. As you've pointed out, one of the key differences is that Appcelerator will use the native device OS widgets rather than web widgets. In simple terms the layout is abstracted into an XML format which is then rendered into native equivalents during compilation for each of the platforms.
Depending on your application, native widgets may be important, or not. For example if you're developing a game then it could actually be advantages not to use the native widgets and have an essentially identical look and feel across all device platforms and screen aspect ratios.
The other difference is that Phonegap is free, (though their optional build service is not). Appcelerator is priced on a monthly subscription, but you also get some cloud features included in that.
Other popular cross platform tools to check out: Xamarin (native widgets, C# development, non-Free), ReactJS (native widgets, Javascript development, free-open source)
You can also try using Ionic and Cordova frameworks, They support cross-platform development and in my opinion have good documentation support

[GAME][2.3+] Rotary Pipes

Rotary Pipes
I recently wrote a simple game that is about a twisted structure of pipes. These seek to get back in shape by rotating them accordingly, such they they form a connected network again.
My main reason for posting this in here is the crossplatform development background. This being said, I converted the Android app to a desktop application for Windows within an hour as described below.
Download
Windows
As already mentioned, the crossplatform development background is my main reason for posting this here. The app for Android has been developed in a way, that makes it easy to convert it to other platforms. The graphical user interface has for this reason been developed with HTML, CSS and JavaScript and can therefore simply be rendered in any common webview. Regarding the core mechanics, basic C / C++ has been used in combination with some preprocessor quirks in order to easily compile it for arbitrary targets. The remaining parts like persistent preference containers have eventually been implemented by utilizing a custom domain specific language in Xtext, which again makes crossplatform development feasible by utilizing code generation.
Feedback
I highly appreciate any feedback, so please do not hesitate with any advices or suggestions.

React Native Vs. Ionic – Disruptive Cross Platform App Development

Do you know that by 2020, there will be more than 6.1 billion mobile users?
Mobile app development is slowly becoming a mainstream digital solution and the number of apps on the app stores keeping on increasing rapidly. Today number of businesses are coming up with the need to get mobile apps to build. For them, it poses a critical solution that can be very helpful in expanding their business. Today different technologies and frameworks have come up to meet the ever-changing business needs. The popularity of cross-platform app development is increasing too. However, there is always a point of debate when it comes to choosing the right platform for app development.
React Native Vs. Ionic
React Native: React Native is an open-source mobile application framework designed by Facebook.
=> Advantages of React Native
1) Multiple platforms:
2) It is cheaper
3) Easy to find developers for your mobile app
4) Facebook supports it
5) Offers UI/UX focused development
6) Third-party plug-in support
Ionic: The framework concentrates on developing hybrid apps that perform the use of WebView, a specific HTML rendering engine to create your app runs on the device.
=> Advantages of Ionic
1) Easy to learn
2) Cross-platform app development
3) User Interface
4) Built on AngularJS
5) Performance
6) Cordova Plugins
React Native Vs. Ionic
Cross-platform mobile frameworks are meant to develop mobile applications for more than one platform. That is why they are the most selected frameworks. Most of the cross-platform app is compatible with both iOS and Android. We will learn about Xamarin, Ionic, Flutter, and React Native frameworks.
React Native
React native is created with JavaScript and ReactJS programming languages. It is designed by Facebook, whose primary purpose is to build mobile applications. React Native uses native components, and it does not depend on web views. React native uses iOS or Android components when creating a user interface.
Ionic
Another cross-platform framework is Ionic. The structure is built with Apache Cordova and Angular, and it gives the developers the chance to create more than one mobile platform. All applications built on the Ionic framework can run swiftly on Android and iOS devices.
Best Framework to use for cross platform development
Ionic & react-native both are a great choice for developing a cross-platform application.
If you are targeting ios and android development with advanced javascript then react native is a better fit but if you are more inclined towards the traditional web development to target mobile and web then you should go for ionic.
Ionic is basically more famous among enterprise and startups due its inclination towards web development technology where as react native has a history of native app development.
When it comes to disruptive cross-platform app development, React Native and Ionic are two of the most popular frameworks today. Both offer excellent performance and user experience but there are differences between them that make them better suited for different types of projects.
React Native is a mobile framework based on JavaScript that allows developers to create native mobile apps with near-native performance. It uses similar concepts as ReactJS, which simplifies the creation of complex user interfaces. Additionally, its modular architecture makes integrating third-party libraries easier than ever before.
On the other hand, Ionic is an HTML5 framework specifically built for hybrid app development. It works well with both Android and iOS platforms and lets users integrate Cordova plugins into their apps easily - giving them access to device features like camera or GPS capabilities in an efficient way. Though it’s code base is significantly larger than React Native’s, making maintenance more difficult in larger projects.
At the end of the day it really depends on your specific goals or needs when deciding which one to choose – if you need native platform capabilities go with Redux; if you prefer HTML5 structure then go with Ionic; or even consider leveraging both technologies together!
That's why we at Techmango suggest app development frameworks based on the goals alone.
Two well-liked cross-platform app development frameworks, React Native and Ionic, each have unique methodologies and application cases. Let's contrast React Native with Ionic in terms of their innovative potential for creating cross-platform apps.
Performance: Facebook created the React Native framework, which leverages native components to build a mobile app's user experience. This enables the programme to function natively on the device, resulting in exceptional performance and a fluid and responsive user interface. Ionic, in contrast, makes use of web standards like HTML, CSS, and JavaScript that are wrapped in a WebView, which can lead to somewhat worse performance than React Native.
Speed of Development: Ionic is renowned for having a short development cycle because it makes use of web technologies that are common among developers. This makes it a viable option for startups or small projects because it enables rapid prototyping and development. React Native also boasts quick development times since it features a hot-reloading feature that enables developers to observe changes in real time without having to completely recompile the app.
Native Access: Because React Native leverages native components, it offers better access to native device functions like the camera, GPS, and contacts. Because Ionic is built on web technologies, it could need extra plugins or unique native code to access specific device functionalities, which might increase the amount of time and work required for development.
React Native employs native components, so the UI/UX of the app can be more similar to that of a native app, giving consumers a seamless experience. Ionic, on the other hand, offers a consistent UI/UX across many platforms despite using web technologies, which may produce a somewhat different appearance and feel compared to native apps.
Community and Ecosystem: With detailed documentation, a huge number of libraries, and active community support, React Native has a larger community and ecosystem. Facebook has also given it considerable support, ensuring ongoing updates and enhancements. Ionic offers a respectable environment and community as well, though perhaps not as much as React Native.
In conclusion, both React Native and Ionic are effective frameworks for creating cross-platform apps, but they take different methods and make various compromises. Although React Native has a potentially steeper learning curve, it offers superior performance, native access, and a broader ecosystem. Ionic, on the other hand, is an excellent option for rapid prototyping or smaller projects because it provides quick development speed, a well-known web-based approach, and respectable performance. React Native vs. Ionic selection is based on project needs, team skill level, desired performance, and user experience.

Topping Engine - Middleware for developing android and ios applications. One layout one code for both platforms.

I have recently been developing a middleware library that helps you to develop mobile applications, faster and easier than before. Finally it is live at https://topping.dev . This project started in 2012 to reduce time developing applications on android and ios platforms by creating a topping layer on mobile operating systems. All you need to know is how Android layout XML works and basic Lua or Kotlin knowledge. After developing it from time to time, I decided to make it open source. The project is in beta stage but most of the functions work. With the help of the open source community, I hope it will expand and grow and become the best of its kind. Also there are WPF and Web proof of concepts at github. http://github.com/topping-dev

Categories

Resources