Building a static mobile web app with Backbone - javascript

I am still researching about the right frameworks to use for an upcoming project. I need to develop a static web app that will be running on iPad, iPhone, Galaxy Tab 10.1 and Android devices with a resolution of 480x800px. This web app will be static, no interaction with a server.
Since I like Backbone very much, I was asking myself if it would be useful using it for something static. The advantages I see are especially in structuring code in general, separating different views and making use of the events in the views. Would you recommend using Backbone for this - what are the advantages and disadvantages you see in this approach?

From your question i am getting that you want to make an app that could be run on both iOS and android devices.
A few weeks earlier i was also looking for the same question and after looking at couple of mobile frameworks available in markets like (rhoMobile,Appcelerator,and phonegap) I choose Appcelerator.
Its a great framework. If you are comfortable with ruby then you can opt for rhoMobile too.
This framework can easily work with webServices etc written in php and other.
Like backbone, Titanium Appcelerator also uses javascript and provide rich API for your application development.

Related

LOB Desktop applications using HTML5, CSS, Node.js, Chromium Embedded Browser

With the tremendous progress going on with web technologies, does it make sense to bring these to desktop and client-server applications.
We typically build our applications using winforms and wpf and the code base is like 100k+ lines of code.
Is it worth exploring the option of HTML5 UI and Node.js backend and use a framework like the chromium embedded framework or node-webkit.
The reason I am asking this is that the support from Microsoft for the desktop technologies is questionable (wpf, metro apps ...).
At least with the technologies I listed, it is easy to port to make the application work across all platforms and companies like microsoft and google are pushing for html5 and javascript.
A number of companies are using CEF and similar web-based technologies for desktop applications.
Steam from Valve is CEF based (https://developer.valvesoftware.com/wiki/Chromium_Embedded_Framework), as is
Spotify https://community.spotify.com/t5/Help-Desktop-Linux-Mac-Windows/Chromium-Embedded-Framework/td-p/912377 and
Adobe Creative Cloud (I believe using Adobe Brackets Shell over CEF and incorporating Node.js) https://github.com/adobe/brackets-shell
Advantages for them are that server side content can be delivered to the application, as can UI updates, and the client machine is fully accessible.
We are using it for product authorization and delivery, the advantages of CEF for us are dynamic update from the server of both UI and business logic in Javascript, and because CEF allows calls from Javascript to C++, we can access files on disk and Registry entries that pure Web code cannot.
So I would recommend looking into this.
For ordinary Line Of Business applications, I would suggest no, don't go half-way.
I used to do advanced UI development in WPF, and it was amazing for its time (a decade ago), but nowadays it is really amazing what can be done all within a modern web browser. And yes, Microsoft's support of full-powered desktop technologies is like a ghost town (I suspect they just want to get their 30% commission on apps in their store, so they've shifted focus to UWP).
Why do you need to create a hybrid desktop/web application? Unless you have a specific (and important) need to break out of the browser's sandbox, why not go all the way and create a web application? Modern browsers have a lot more capabilities now, and they keep getting better.
There are also many technologies and frameworks that really help to make large-scale web application development a lot easier than it used to be.

Is it viable to write a web-based mobile app with native navigation?

I'm writing a mobile application for android and iOS. I'm quite experienced with Javascript, HTML, and CSS; thus I would like to write the majority of the app with these languages. However, the fundamental navigation between the different "areas" of the app would be done with native navigation—this would be Java on Android and Swift on iOS. Is this a viable approach? Do the app store and marketplace typically accept apps of the kind? What are the pros and cons of this approach?
Thank you
You can make a website looking like an android app, then using the view WebView. Webviews display the site as it is in the application.
For informations about WebView, go to developer.android.com/reference/android/webkit/WebView.html

What is the Difference between Xamarin and Telerik Platform

This is going to be quite a hectic question and im hoping that you can all Bear with me.
Im having difficulty fully understanding some things about mobile App development.
So my Main question is : What is the difference between Telerik Platform and Xamarin ? Dose it just depending on what you are more comestible with, Like if you are a c# developer and know the .Net framwork, Then use Xamarin or is it alot more complex than that ? As i know that Telerik uses Javascript, so is it more of an open dev based mobile app ?
Which is better for the future of mobile development as i want to move in the right direction.
As an Extra: Has anyone heard of Dart ? i found out about it last week and haven't had much time to Read up on it, but it looks like a web based solution from google.
Dartlang
In Xamarin you can build native applications for Android and iOS system.
It is also possible to write them for Windows Phone.
Xamarin uses C# language.
Apps are created natively using Xamarin wrappers.
There are two options for creating apps in Xamarin:
1) Xamarin.Forms is best for:
Data entry apps
Prototypes and proofs-of-concept
Apps that require little platform-specific functionality
Apps where code sharing is more important than custom UI
2) Xamarin.iOS & Xamarin.Android are best for:
Apps that require specialized interactions
Apps with highly polished design
Apps that use many platform-specific APIs
Apps where custom UI is more important than code sharing
Telerik Platform is good for web developers who want to create mobile apps:
Here you can write html and javascript.
Remember also that your apps on iOS and Android will be displayed in WebView (browser). Only Windows Phone apps can be written in html and javascript natively.
Hope this will help.
Please also see this (I asked about Xamarin and Apache Cordova):
http://www.codeproject.com/Forums/13695/Mobile.aspx
All of the mentioned framework do the same thing in different ways, its totally depends upon your skillset and interest which framework you find easy to understand or find interesting.
Each of those have their market in which you can grow. below are some links may help you.
http://www.telerik.com/campaigns/build-mobile-apps-with-dotnet
https://forums.xamarin.com/discussion/13686/the-future-benefits-of-xamarin-over-other-options-and-mobile-apps-replacing-websites
Dart is a modern open source programming language that allows to write concise code
built-in support for async/await, Future (Promise), Stream (Observable), ...
Supports lots of platforms
Server with the Dart-VM (Windows, OSX, Linux)
in the browser after to-JS transpilation
Android and iOS by Flutter https://flutter.io/
embedded systems by Dartino https://dartino.org/
Dart can be transpiled to JavaScript (to-TypeScript is work in progress)
extensive high-quality standard libraries
dart:html library that for browser abstraction that makes most polyfills redundant
shipped with lots of tools
package manager
analyzer/linter
debugger and profiling tools
test runner
Dartium development browser
...
IDE support
easy integration using the IDE services the analyzer provides
Atom plugin
WebStorm/IntelliJ plugin
...

Difference between Hybrid Mobile app and Mobile web app

Recently, I started learning about mobile app development frameworks called Mobile Angular UI, IONIC, Sencha, KendoUI. They help to develop mobile app using html, javascript and css.
That's when it got me thinking if the above frameworks are hybrid or not.
A Hybrid framework is one which helps to create mobile app using html, css and javascript. But so do mobile apps. So actually what is the difference between Mobile web app and Hybrid mobile apps.And are the above frameworks Hybrid or not??
Originally posted here: Cedcommerce
First of all, let me guide you what actually is a native app and what we mean by Native vs Hybrid mobile apps. A Native app is an application which is built specially for a particular operating system, different application for a different operating system using native language of that particular device.
If you’re still confused about Native app development, it means creating an Android or iOS mobile application using the respective company’s (in this case Google and Apple) SDK(Software Development Kit) and tools.
Two most widely used operating systems are Android and iOS where Android dominates the market with a whopping 86%, while iOS comes at a distant second at 12%.
Native vs Hybrid Mobile App
Worldwide Smartphone OS Market share
Image Credit: IDC
If you are developing for Android, that means writing your apps in Java (or Kotlin) and for iOS, writing your apps in Objective-C or Swift. The main tool Xcode is the integrated development environment in which your developer will create your native app.
Another type of less known Mobile app is called Hybrid app. Hybrid app development means using a 3rd party hybrid platform (examples include React Native, PhoneGap, Ionic, Cordova, or Xamarin) and using web technologies (HTML, CSS, and Javascript) to write a hybrid app that runs on both iOS and Android.
When it comes to Native vs Hybrid mobile apps the hybrid apps can run on any platform – (Android and iOS) – with the same code. This may sound like an advantage over the native apps because writing one app is cheaper than two but don’t get excited so quickly as I will highlight why not to choose the hybrid apps as we go down.
While 79 percent of consumers would retry a mobile app only once or twice if it failed to work the first time, only 16 percent would give it more than two attempts. The poor mobile app experience is likely to discourage users from using an app again. Source
Users experience tops all the other features when it comes to mobile apps, a bad UX will surely help you get your app deleted and there is hardly any chance the user will ever return to your app again.
See How Native Apps provide Faster and User-Friendly Checkout
Talking about mobile apps, the number of downloads surely represents how good and popular an app is but the key factor is the user retention. And It’s a known secret in the mobile development community that mobile app retention is pretty low. According to TechCrunch, one in four mobile users only use an app once.
Retention Curves for Android Apps
Source: Quettra
Native apps are far more superior when it comes to Speed, Responsiveness and therefore scores more in the user retention segment. Native applications have the best performance, highest security, and best user experience.
Talking about native apps a simple yet top-performing solution for your online store is MageNative App
Native vs Hybrid Mobile Apps:
Built-In Features: A native app has better and faster access to device’s native features and inbuilt utilities such as camera, GPS, calendar whereas hybrid app struggles a bit.
Speed: Hybrid applications are web applications (or web pages) in the native browser, such as UIWebView in iOS and WebView in Android (not Safari or Chrome) but native app runs as a standalone application (no web browser needed). Due to this dependency on a native browser, hybrid lags behind a native app.
Responsiveness: Native apps are more responsive compared to hybrid apps since they follow the design pattern for unique platforms but hybrid apps are same for all the platforms.
Offline usage: Since Hybrid apps are dependent on a native browser they are unusable without internet connection in contrast native apps like media players, games, navigation works well offline.
Security: Native apps are stored in an application store and the approval process stops buggy or harmful from being published whereas no such store exists for hybrid apps.
Importance of Security Testing
Source: QArea
App Stores also provides good accessibility if a user wants to search any particular app. Besides, before publishing the app you have the possibility to encrypt everything with standard tools, hide the implementation and so on.
Better UX standards: As I mentioned earlier the problem with a hybrid app is that even the most brilliant user experience architect cannot truly build an app that caters to the two dominant user types: iPhone users and Android users whereas Native app follows the specific UX/UI standards for creating Android or iOS apps, which allow users to easily understand the interface and navigation of the apps. An example of a native app:
Native vs Hybrid Mobile App
Bottom-Line: Native vs Hybrid Mobile Apps
It’s time to finish the Native vs Hybrid mobile app battle with the conclusion that ultimately the user and his needs decide which framework will work best, for me Native apps are better than hybrid apps in almost all the major aspects.
The choice depends on you, if you are looking for a simple app with some basic functions and can handle daily simple tasks go for hybrid app but if you want a more complex app which can make full use of the device’s inbuilt features and handle complex tasks then the native app will be the best choice and you won’t regret.
Anything that wraps HTML/JS code into a native app is a hybrid. The difference is that the hybrid app relies on the UIView (think of it as a minimalistic web browser) to show all the content, while the native apps usually use the UIView only for browsing and have everything else coded in the native language. Basically, the hybrid app is always laid on the UIView and everything happens inside it. Similar to opening a dedicated web page in fullscreen and having access to all (or most) of the native phone features (vibration, sensors, notifications, etc...).
Think of a simple button made using HTML vs. a simple button made using Java/Objective C/C#... That's what hybrid frameworks are trying to make work and look as similar as possible. Hybrid apps require none (or almost none) native language coding.
"So actually what is the difference between Mobile web app and Hybrid mobile apps?"
None of the frameworks above say that. More specifically: none of them mentions mobile web apps with a contrast to hybrid apps because those are the same thing, just different semantics. What the frameworks offer is:
web version of the app (web app)
mobile version of the app (mobile app)
Bottom line:
Anything that is written in HTML/JS/CSS and functions as a native mobile app is a hybrid app.
This article shows the difference between the native app, hybrid app, and a "mobile web app": http://blogs.telerik.com/appbuilder/posts/12-06-14/what-is-a-hybrid-mobile-app-
Be careful, the last one is nothing but a website optimized for phones that can't be installed on a phone as an app, and it should definitely not be mixed with phone apps (native or hybrid). Excerpt from the URL above:
Native apps are built for a specific platform with the platform SDK, tools and languages, typically provided by the platform vendor (e.g. xCode/Objective-C for iOS, Eclipse/Java for Android, Visual Studio/C# for Windows Phone).
Hybrid apps, like native apps, run on the device, and are written with web technologies (HTML5, CSS and JavaScript). Hybrid apps run inside a native container, and leverage the device’s browser engine (but not the browser) to render the HTML and process the JavaScript locally. A web-to-native abstraction layer enables access to device capabilities that are not accessible in Mobile Web applications, such as the accelerometer, camera and local storage.
Mobile Web apps are server-side apps, built with any server-side technology (PHP, Node.js, ASP.NET) that render HTML that has been styled so that it renders well on a device form factor.
Having all that in mind, all four frameworks you listed above can create mobile web pages (or mobile apps, as they call them), but seems like only Ionic is able to build hybrid apps that you can actually install on the phone (couldn't find relevant info on Sencha, but now you know what to look for).
Agree with all the above said.
Will just add/sum up the pros and cons of Hybrid Mobile Apps (Apache Cordova and React Native).
Apache Cordova
Pros
High development speed
Coded in web development technologies (HTML, CSS, Javascript) that yield cross-compatible iOS, Android, and web software (just one web developer needed)
Frameworks are availalbe that emulate native app UI elements (i.e. buttons, menus, etc.)
UX is very close to a native experience using UI elements that mimic native app behavior
Access to the smartphone’s hardware API, facilitating device functionality (e.g. camera, push notifications, geolocation, and others)
Cons
UX is not as good as it is on native apps (300ms click delays, phantom clicks while scrolling, etc.)
The more complex the application, the slower it works due to the various wrappers and libraries employed
Doesn't work offline
Animations are difficult to implement in the UI
React Native
Pros
High development speed for the React-based apps
Web application built with React.js can be easily converted to a React Native mobile app, and some source code can be reused
Native user experience
Application looks and feels exactly like a native mobile app for a specific platform
Reduces development costs
Experts in React Native can usually build both Android and iOS apps
Cons
Relatively new technology (limited open-source solutions)
Limited with regard to visual design
Not ideal for complex projects like mobile games or apps that require a high load (significant computations)
If you are interested in comparison of Hybrid vs Progressive vs Native app development this article is worth reading.

iPhone: What are the Advantages and Disadvantages of Developing with CSS/Javascript?

There are alternatives to developing for iPhone besides the native Objective-C API. In particular, there are CSS/Javascript based solutions such as the iUi Framework.
Can you write successful iPhone apps with CSS/Javascript? Does Apple approve such apps? What are the advantages and disadvantages of using this approuch?
Thanks in advance.
(1) You can write successful apps with CSS/Javascript. The first generation of iPhone apps were all CSS/Javascript.
(2) Apple routinely approves such apps.
(3) The advantages are that you can leverage your existing knowledge of CSS/Javascript to write apps without having to learn a new language and a new API. The disadvantage is that such apps are not as fast, flexible and powerful as compiled apps. It is exactly the same situation as on a non-mobile platform. Webapps do not compare to apps written with the system specific API.
However, in some cases they can be almost as good. For example, if the main purpose of your app is to interact with a specific web site, then a CSS/Javascript app will probably perform just as well as a compiled one.
There's not really any question as to the "best way". There's just a way; that is, using UIKit and Obj-C, with OpenGL ES for games.
There are some other approaches, but they are generally, well, not so good. Developing applications for the iPhone using CSS/JS is a bit half-assed; but doesn't really require apple approval; seeing as how they are just web apps.

Categories

Resources