Team,
I'm new to titanium. I'm working on creating enterprise application for iPhone. I need to know is there any way to communicate between two iPhone applications? Where as one application is created as native iPhone application using objective c and other is created using titanium framework.
Kindly share ur thoughts how to do this.
Thanks
Shatthi
The Titanium application is actually converted into a native application. You can actually open the build' project in xcode and further develop it there. So there should be no difference to it.
On the other hand, communicating between iPhone apps is not really possible with apps. You can however open links with a prefix to other apps. This is explained here: http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-working-with-url-schemes/
I don't know the support for Titanium to actually create the url catchers. It can be done by Xcode as explained in above link. But because you want to communicate TO an native-build app, that app only needs to have the support to understand those links
You could also use this approach: link between apps modifying the editing menu (bubble-popup menu) - a similar way to do this
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I wonder if I could build a mobile app using node.js, angular and sequelize and how building mobile apps differs from building web apps? I started recently learning node.js, angular and sequelize..
Thank you!
Mobile apps can be created using HTML5 based technologies. You would not run node.js on a mobile device, you could have a node.js app running on a server that the mobile app can call for data and HTML templates.
Building an app in HTML5 is never going to give you the same performance as a native app like an IOS app in Swift but it can reuse a lot of code and templates between the web app and mobile ports between different OSs.
It is a big topic but short answer is that you can build mobile apps with Angular but node.js will only provide you the server side part of the app.
The essential notion behind these tools is basically to reduce "mobile app" development to "web development," by applying (as much as possible) the exact same techniques to both environments. "The display is furnished by a web-browser, controlled by CSS and JavaScript and so-on."
This is "one way to do it," certainly.
But, as you embark on your learning-curve, you should also know that there are (several) other ways to do it. You should make it a point to explore all of them. (In due time ... in due time ... Rome wasn't built in a day.)
Native Application Development uses a vendor's supplied tools to produce an app that basically runs only on that vendor's hardware. *(Although, you should pay careful attention to Apple's Swift, which certainly seems to me to possibly have "cross-platform intentions."
Cross-Platform Toolkits, such as Haxe and OpenFL, which are both so-called "transpilers." These tools take a common source-language format and compile it into source code for a variety of platforms, which are then fed (if necessary) to a platform-specific compiler tool.
The specific tools that I have cited here are by no means the only such tools now available: this is a rapidly-evolving technology.
there are a lot of ways to develop hybrid mobile apps. If you were familiar with angularjs, IONIC will be a nice choice. Ionic combines AngularJS (JavaScript by the way) with HTML5+CSS and uses Cordova to access native device functions. There are genera 3 steps to develop hybrid mobile apps. Firstly, we develop it just as we develop the web app. Secondly, we need to install the platform dependency( android SDK for android mobile, Xcode for ios or windows phone ) and install build tool such as Apache cordova ( enables software programmers to build applications for mobile devices using CSS3, HTML5, and JavaScript instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone). thirdly, using cordova to build your web app into ios or android mobile app.
However, the use of Web-based technologies leads some Apache Cordova applications to run slower than native applications with similar functionality.
I have found limitations in using frameworks like Ionic for building mobile apps. These are mainly to do with accessing device specific functionality. So two questions:
Are there any similar limitations with using Electron for building Mac Apps?
What are the advantages of building native apps using swift?
Some native capabilities are available in Electron, like adding an entry to the Dock menu or showing a menu bar icon. Other capabilities have been added by third parties, like this one, which plugs into System Preferences. If nothing else, there's a JS-to-Obj C bridge, to invoke Objective-C code.
Another important factor is that apps made using write-once-run-anywhere frameworks often have an odd UX and don't fit in to platform conventions. You get this free when you build a real native app using Cocoa and Swift / Objective-C.
For example, toolbars should change in appearance when the window loses focus. You can see this for yourself by opening (say) Safari Preferences and then switching to another window or app. Electron apps don't do this.
As another example, if a right-click menu is open, the user should be able to press "C" to move the selection to "Copy". Electron again doesn't do this.
This results in an app that looks and feels odd and second-tier. If a native-quality UX is a priority, build your app in Cocoa.
If you don't have the resources to build separate Mac and Windows apps (say you're a two-person startup or a charity) but still want a better UX than a web app, then consider Electron.
Reference: Making a web app feel native, and a subsequent email discussion with Ben Gotow, the engineer who gave that talk.
In this moment I'm just learning how to use electron, but I feel Electron is very easy to use you could see this deck from a Teacher of Turing School
https://speakerdeck.com/stevekinney/building-desktop-applications-with-node-and-electron
I know that you can open system apps, such as the browser, or share dialog, through cordova applications, but I was wondering if it is possible to interact with android actions, such as answering phone call, etc, through a cordova/phonegap app.
EDIT:
So, there wasn't any plugin that can do exactly what I wanted. But I wrote a small plugin https://github.com/KIvanow/installedApps which, in combination with http://plugins.cordova.io/#/package/com.hutchind.cordova.plugins.launcher can actually list and start every app on the device.
I think that Córdova is limited for whats on the API + plugins developed by users, if you can't find a plugin for the behavior you'r looking, you need to develop your own Córdova plugin on the respective native languages.
I've been playing for a while with phonegap,
did some tests on my Android...
It's pretty nice.
My questions are:
What is the best (your favorite) framework to develop native mobile applications with web client side (HTML / JavaScript / CSS)?
How easy is to build and maintain those applications in multiplatforms (iOS / Android / BlackBerry) parallel?
Does it has many exceptions between different platforms (iOS / Android / BlackBerry)?
What are the requirements to develop my app for iOS?
Should I need a special IDE with special SDK? Must I have a Mac?
We're currently building a native iOS application using React Native. It would be a shame if it wasn't included here.
Pros:
React treats the DOM as an implementation detail. This made the transition over to native UI very natural. It also removes the need for HTML/CSS when writing a native app. All you need is native components, written in JavaScript.
Native components! The fundamental native components have already been bridged over to JavaScript, and there is a community busy at work bringing everything else over. The thing is, if you know or are willing to learn some Objective C or Java, there is an easy process to add any native module (or third-party module) to React Native.
Quick iteration. There have been over 2600 commits to the master branch since it was open-sourced in March.
You get all of the benefits of normal React: a virtual view layer, diffing, declarative UI creation, fantastic developer experience, and a stellar community.
You can build for multiple platforms from the same repository, reusing much of the same codebase (application logic, mostly).
Cons:
It's still young. There are a few features that require jimmy-rigging, a third-party library, or custom Objective-C/Java to get working.
Some great third-party libraries that are tied to the DOM or Browser API still don't work on React Native, including React Router.
The biggest pains have had to do with XCode and Apple's developer program, but there's no way to get around that.
How easy is to build and maintain those applications in multi-platforms?
React Native for Android was open-sourced on September 14th, 2015. I haven't used it yet, but here's what I've been able to learn so far. Update 10/21/16: React Native for the Windows Universal Platform was announced earlier this year. That means you can now use React Native to build apps for Windows desktop, Windows phones, and even Xbox!
React Native is not intended to be a write once, run anywhere mentality. They adopt a learn once, write anywhere paradigm instead. iOS is a very different platform than Android, so sincere effort needs to be put into the design for either platform. The native APIs will also be different.
So, you will end up re-writing code for native components and APIs. However, much of your application logic can be re-used. In fact, React-Native is organized so that you can keep both your Android and iOS applications in the same repository, so that you can re-use the same code when possible. I think it's brilliant, but only time will tell. According to them, it works well so far.
By the way, a team at Facebook built an iOS app using React Native, then turned around and built the Android version in three months using 87% of the same code base.
What are the requirements to develop my app for iOS?
Currently, you need a Mac and XCode in order to deploy. Currently there are very few ways around this. According to this issue and from conversations on Slack, once deployed, you can actually develop from a Windows or Linux machine. Facebook is also working on open-sourcing all of their Nuclide packages, which, according to their presentation at F8, will include tools to package and build without XCode.
Overall, React Native has been a stellar experience. It is, in my opinion, head and shoulders above anything else currently out there. The feeling within the community is also very positive. I can only assume it will get better with time.
If your app is going to be very simple (for example a port of existing web app) and you need it only on one platform and it does not need integration with phone-specific features you may want to simply use a WebView on the selected platform. If your selected platform is iOS and you don't have any programming skills, you can follow these steps:
Download xCode on your Mac,
Download this simple web view app project: https://github.com/nomtek/iOSWebViewApp
Open the simple web view app within xCode
Add your HTMLs to the project
Run it :)
Advantages of this approach:
Simple setup
No extra libraries to load - the application starts much faster
This is one arena that keeps changing, and it only gets better. Googling at the moment of your interest would be the best bet. At the time of this writing, I am watching the following right now, in no particular order:
Enyo JS
Sencha
NativeScript
Meteor
PhoneGap
Appcelerator
these are the options
Phonegap : http://phonegap.com/
PhoneGap is a free and open source framework that allows you to create
mobile apps using standardized web APIs for the platforms you care
about.
.Download the Phonegap.
Coronalabs : http://coronalabs.com/
Corona SDK builds rich mobile apps for iOS, Android, Kindle and Nook.
Build high quality >mobile apps in a fraction of the time.
Appcelerator : http://www.appcelerator.com/
Appcelerator is the only mobile first platform that enables enterprise
to create, deliver >and analyze their mobile applications.
Phone Gap does look like your best option, if you are trying to use javascript to build a mobile app
Yes, you will need a mac, because you will need to install XCODE (https://developer.apple.com/xcode/) - apple´s own IDE.
If you invest a bit in learning a new script language, Coronalabs would be your new weapon of choice. With it you can build native (cross-platform) apps and you can use a webview to add your HTML/CSS/Javascript stuff if you need it.
At the moment React Native is the best option for creating mobile apps in JavaScript.
Here are my top 3 reasons:
Very active development and updates - After all it originated at FB
Negligible learning curve
Great online resources
I was able to write a small but functional app without previous React Native experience and even deploy it to the Google Play Store all within 2 days.
Also one great benefit that i see with React Native is that you can "eject" your app at any point in time and continue to work on it in Android Studio or XCode. This could be a big relief in projects that start simple but could get complex over a period of time.
Here is short tutorial I put together while building my first react native app for Android:
http://geekycentral.com/creating-a-native-android-app-using-javascript-hello-react-native/
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
First, I'm not interested in doing this professionally. I am a web developer, a coworker of mine recently left for Spotify and said he will be working mostly in JavaScript for the Spotify Desktop app. He said it uses "Chrome frame" and everything inside is done like a web app (HTML/JS/CSS).
As a web developer who never built anything for Desktop, this is great news. If I can use the technologies I already know and implement them inside some sort of a "frame" and still be able to build a windows or better yet cross platform app.
I know I didn't mention anything about the database, but even a simple hello world desktop app with web technologies would be great to get going.
So how does one go about this? Exactly what do I need/need to know?
You may start with Titanium for desktop dev. Also you may have a look at Chromium Embedded Framework. It's basically a web browser control based on chromium.
It's written in C++ so you can do all the low level OS stuff you want(Growl, tray icons, local file access, com ports, etc) in your container app, and then all the application logic and gui in html/javascript. It allows you to intercept any http request to either serve local resources or perform some custom action. For example, a request to http://localapp.com/SetTrayIconState?state=active could be intercepted by the container and then call the C++ function to update the tray icon.
It also allows you to create functions that can be called directly from JavaScript.
It's very difficult to debug JavaScript directly in CEF. There's no support for anything like Firebug.
You may also try AppJS.com (Helps to build Desktop Applications. for Linux, Windows and Mac using HTML, CSS and JavaScript)
Also, as pointed out by #Clint, the team at brackets.io (Adobe) created an awesome shell using Chromium Embedded Framework that makes it much easier to get started. It is called the brackets shell: github.com/adobe/brackets-shell Find out more about it here: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
NW.js
(Previously known as node-webkit)
I would suggest NW.js if you are familiar with Node or experienced with JavaScript.
NW.js is an app runtime based on Chromium and node.js.
Features
Apps written in modern HTML5, CSS3, JS and WebGL
Complete support for Node.js APIs and all its third party modules.
Good performance: Node and WebKit run in the same thread: Function calls are made straightforward; objects are in the same heap and can just reference each other
Easy to package and distribute apps
Available on Linux, Mac OS X and Windows
You can find the NW.js repo here, and a good introduction to NW.js here. If you fancy learning Node.js I would recommend this SO post with a lot of good links.
Awesomium makes it easy to use HTML UI in your C++ or .NET app
Update
My previous answer is now outdated. These days you would be crazy not to look into using Electron for this. Many popular desktop apps have been developed on top of it.
NOTE: AppJS is deprecated and not recommended anymore.
Take a look at NW.js instead.
It seems the solutions for HTML/JS/CSS desktop apps are in no short supply.
One solution I have just come across is TideSDK: http://www.tidesdk.org/, which seems very promising, looking at the documentation.
You can develop with Python, PHP or Ruby, and package it for Mac, Windows or Linux.
Sorry to burst your bubble but Spotify desktop client is just a Webkit-based browser. Of course it exposes specific additional functionality, but it's only able to run JS and render HTML/CSS because it has a JS engine as well as a Chromium rendering engine. This does not help you with coding a client-side web-app and deploying to multiple platforms.
What you're looking for is similar to Sencha Touch - a framework that allows for HTML5 apps to be natively deployed to iOS, Android and Blackberry devices. It basically acts as an intermediary between certain API calls and device-specific functionality available.
I have no experience with appcelerator, bit it appears to be doing exactly that - and get very favourable reviews online. You should give it a go (unless you wanted to go back to 1999 and roll with MS HTA ;)
I know for there's Fluid and Prism (there are others, that's the one I used to use) that let you load a website into what looks like a standalone app.
In Chrome, you can create desktop shortcuts for websites. (you do that from within Chrome, you can't/shouldn't package that with your app) Chrome Frame is different:
Google Chrome Frame is a plug-in designed for Internet Explorer based
on the open-source Chromium project; it brings Google Chrome's open
web technologies to Internet Explorer.
You'd need to have some sort of wrapper like that for your webapp, and then the rest is the web technologies you're used to. You can use HTML5 local storage to store data while the app is offline. I think you might even be able to work with SQLite.
I don't know how you would go about accessing OS specific features, though. What I described above has the same limitations as any "regular" website. Hopefully this gives you some sort of guidance on where to start.
You can build Javascript apps with Adobe AIR… http://www.adobe.com/products/air.html
CEF offers lot of flexibility and options for customisation. But if the intent is to develop quickly node-webkit is also a good option. Node-web kit also offers ability to call node modules directly from DOM.
If there aren't any native modules to integrate Node-Webkit can offer better mileage. With native modules C/C++ or even C# it is better with CEF.