I'm confused about the tools/frameworks for mobile web app development - titanium

I'm confused. What are the differences between Sencha, Titanium, and Cappuccino?

(I'm assuming you're talking about Appcelerator Titanium.)
Probably the biggest difference is the language used. Cappuccino uses a language called Objective-J, which is VERY similar to the Objective-C language used for native Mac and iPhone/iPad apps, but then gets compiled into Javascript for a web app. The other two use HTML/JS like a native web app.
Also, there's the big question of what the application actually looks like on a mobile platform, and what features it can access. Cappuccino and Sencha, AFAIK, allow you to design web apps that are optimized for mobile. But, since they're just glorified web pages, they won't be able to get things like accelerometer or GPS data; they aren't native iPhone or Android apps. Titanium, however, compiles to a native iPhone or Android app and allows you to do those things. Titanium can also compile to a native desktop application.
Hope this helps!

Sencha is the web-based javascript framework to develop webapp. You must use Sencha with other platform such as PhoneGap in order to run this webapp in iPhone / Android. There are many web-based javascript framework like Sencha such as jQuery Mobile, Magic Framework, xUI...
Titanium is different. It also use Javascript for develop app. But Titanium will compile these javascript to objective-C code. It mean when using Titanium, you develop native app, not webapp as PhoneGap.

Related

Difference between React-native and Electron

I want to build a simple read-only app which should run on Android, iOS, Windows, OSX and Linux.
Does electron support mobile platform?
I couldn't figure out which one should I go for.
Electron include chrome engine to render web pages as Native apps with support for different plugins to add desktop apps features.
Electrino doesn't include any render engine it uses the Safari engine on the Mac so the installation file is smaller than Electron.
There's no support for Windows yet.
React Native is using a cross-platform render to Android and iOS.
Example: <Text> on Android will be TextView and on iOS will be UITextField
React Native Web made React Native work on web
Example: <Text> on web will be <p> or <label> not sure
and after that, it can work on the desktop by electron
You can build universal apps by using this template by React Native code.
Also if you want a specific target you can add component.web.js or .electron.js
or .android.js or .ios.js so it will render to this target only
https://github.com/react-everywhere/re-start/tree/react-16
Take a look at PWAs. These can be installed on almost all the major mobile and desktop platforms plus it is a web app.
https://developers.google.com/web/progressive-web-apps
Electron does not support mobile platforms, but it will be difficult to use one framework for mobile apps and computer apps.
I would recomment to use phonegap for mobile and electron for the computer application

How do you utilize a third-party iOS SDK with your Appcelerator Titanium app?

We have a well established iOS (iPad only) app written on top of Appcelerator's Titanium platform. We're looking to integrate a third-party piece of hardware with our app that interfaces with the headphone jack on the iPad. The third-party company provides an official iOS SDK to be used in XCode projects.
How can we get the provided SDK to work in our Titanium app?
You'll have to create a module. Check the guide here.
You can also search the internet. There might be existing modules already for your third-party SDK.

Main differences between Appcelerator Titanium and React native

Both frameworks are (hybrid) mobile app frameworks which try to access the native UI components with the JavaScript API provided by the different platforms like iOS and Android. They don't use any HTML and CSS for the UI design like e.g. Ionic do and they are not wrapper frameworks but actually a kind of cross-compiler frameworks. That's what i found out. BUT I didn't get the actual differences between these two frameworks. Why should i prefer one of these? Are they doing exactly the same job?
best regards, Tom
I know this is quite old, but I'll give my answer for the benefit of anyone else arriving here.
Full disclosure, I worked for Appcelerator from 2012-2019.
In short, they're both quite similar.
You write a specific flavor of JavaScript that includes custom objects
Your JavaScript code gets compressed, minified, etc. so it becomes the input to an interpreter that gets shipped with your app
When your app runs, it launches the interpreter which starts executing your code
At this point, JavaScript is being run in "native land", so the interpreter can act as a bridge between your JavaScript code and the native SDK
The result is a native app with access to features of the underlying platform
A "native app" shouldn't simply be defined as an app that runs natively, because that would make a PhoneGap app a native app.
A "native app" should be defined as an app that runs and behaves natively. That means, an app that abides by the native OS' ui/ux guidelines.
MAIN DIFFERENCES?
I'd have to say that the main difference is its internal design. Appcelerator started in 2007, when "mobile" was very young.
React Native was launched in 2015.
In 2015 mobile was already in full swing, and mobile OS' were pretty mature, so I infer that React Native's design benefits from all lessons learned by Appcelerator (and others).
As for which one is better, I'd say React, because Titanium is now dead.

IBM worklight Native to Hybrid Migration

If there is an already existing Android app and now it has to be turned into hybrid app supporting both Android and iOS, how should I do that?
Native Android apps are written in Java.
Hybrid apps are written in HTML, JS and CSS.
You will need to recreate your logic and UI from scratch.

Getting sproutcore application files to use them in a native app via Appcelerator Titanium

I would like build a app using sproucore framework, but i also want to integrate it with Titanium to have some desktop capability like file system, packaging, offline working etc...
I know that with sproutcore 2 this would be pretty easy since it allows to use the framework like a normal javascript library. But the project is still in beta and the docs are patchy at most (I consider patchy even the 1.x docs, actually).
So, I want to ask, which would be the best way to go to integrate sproutcore and Titanium API?
Titanium's main mission is to use JavaScript to build native apps, not to provide a OS-access layer for web apps. It would be hard to mix native and SproutCore UI elements.
That being said, here's some information that might help you:
Titanium has reversed it's application model starting with version 1.0:
http://developer.appcelerator.com/question/71/what-happened-to-html--css
The main app doesn't run in a web view anymore, instead it runs directly in JavaScriptCore and creates only native UI elements. One of the native UI elements is a web view
(http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.UI.WebView-object)
and it's possible to make that full screen and run your SproutCore app inside of the web view. From there, you can call out to Titanium to call Titanium methods for file system access and the like.
Also, if you only target the desktop, you could even access the JavaScript context object of a webview and use it directly in JavaScriptCore.
Johannes