Iphone & Web App synch - iphone

I am trying to build an Iphone App client for our CRM solution so our sales people would be able to access the information available in our CRM through an Iphone App.
I am trying to find out what is the recommended approach to architect the application when it comes to the database. I am not sure where should the data reside, should I save a subset of the data on the iPhone, or should I just rely on webservices and pull the information I need from the database whenever I need it. Also, is there any best practices or frameworks to build such applications on the Iphone.

The "best" solution from a data synchronization standpoint is work directly with the web based database, the "best" solution from a user experience standpoint is probably not that, due to latency passing data back and forth from the server.
If you do not have experience doing iPhone apps & you have no desire to learn Objective-C & would like to leverage web development skills I recommend a combination of phonegap + jqTouch.
Hope I helped.

Is your CRM based on Rails? You might find ObjectiveReference handy. It's an Objective-C interface into ActiveResources on a RoR site:
http://iphoneonrails.com

Related

BB 10: Difference between cascade, core and web-works app

I want to know basic difference between Cascades, Core and WebWorks apps. Can WebWorks-based apps interact with device apps? Or they can simply run on web end? Please somebody clear it for me.
Thanks in advance.
I'm no expert, but in short
WebWorks - it is web based, but you can use some core APIs. Take a look here. I'm not sure, but if I remember correctly you can even write your own libraries in core, to access more
Cascades - it's front-end (QML part) and back-end (QT). It has a lot more access to core then WebWorks. Very simple to make good looking apps, and good functionality
Core - I think it's mostly used for games, and app ports, but has big access to system functions.

Cross-platform mobile app & RESTful web service & scoring algorithms - architecture & technologies

I am planning to create a cross-platform mobile app that has native-like versions for most mobile platforms, maybe Windows Phone, Android, iOS. It's supposed to store data in DB on server, and the mobile app is mostly for visualizing that (numerical) data.
Basic usage scenario
User opens the app
App data is refreshed via internet connection
User inputs new data
New data is sent to server, handled and DB updated
User's app data is updated according to DB data (ANIMATION!)
User updates settings on his app that alters it's behaviour.
I'm a noob when it comes to designing and programming mobile apps + web services alone, so I'm hoping you could help me with the following questions. Technologies I'm most familiar with: Java EE, Python, HTML/CSS/JS, MySQL, Graphics. Maybe I should go for PhoneGap? Thanks a lot!
1) What cross-platform mobile technology you would recommend?
2) What kind of solution would be most suitable for server/app server? (Estimated code lines < 5000)
3) What's a good place to start learning scoring algorithms?
Please respond if you have answers to any of the questions asked.
EDIT: found a similar question: Cross-Platform Mobile Application Solution
#thevangelist: It's a very good question you have raised, all mobile developers face the same problem when we start writing an app. Today there are multiple Open Source Frameworks available in market which are trying to solve the same problem but in different manner.
Based on my research and experience, I would like to recommend below technologies which we can consider while building an mobile apps.
View: View is an important part of any mobile apps. When we start building UI/UX we also have consider it's platform design principles. Looking these points I would like to recommend React Native for the same.
React Native: It is a Facebook, and Instagram developed JavaScript library used in creating native mobile applications. It allows us to write iOS and Android applications using JSX, a known HTML look-a-like code, and JavaScript. It is based on “Learn once, write anywhere” methodology.
Pros
Renders native views with a native behavior and interaction … you’ll end up with a real native application
Has a paradigm of “Learn once, write anywhere” where developers only need React and JavaScript to create better application for Andoroid, iOS.
Uses native architecture and concept
It does not require a WebView
CSS Flexbox is used for layout design
Cons
Code abstraction leads to bugs and memory leaks
Cannot work without the API, which is provided by React Native, technically there’s no fallback like with classic hybrid mobile apps
When creating proper native applications, a developer will have more power and control regarding performance tuning
React Native is still a new framework so we can’t predict possible problems and downsides
These cons are somewhat negligible, especially if we consider that React Native is empowering more and more native applications with each passing day.
Data in Transit: If your app sync data from web services, then there are multiple frameworks available in the market to make our job easier. Please find below some of the most popular JavaScript RESTful Frameworks:
ACTIONHERO, StrongLoop
Data at Rest: You would also be needing offline storage for the sync data. Since we do not have direct support for native SQLite in JavaScript, we need to use some of the React Native SQLite Plugins. Please find below plugins which are available in the market:
almost, andpor, jbrodriguez, ramsundark5, remobile
For Data at Transit/Data at Rest, I would like to recommend Siminov Framework which is available on all the major platforms (Android, iOS, Windows). It also supports hybrid technologies such as React Native, Cordova, Xamarin.
Pros
Available on all the major platforms (Android, iOS and Windows)
Easy to configure, it provides standard xml based structure using we can easily configure our app database
It allows developers to bind ORM with remote RESTFul web services too
Also have support for SQLCipher on all the platforms
Cons
Lack of community: Recently they have launched their products on all the major platforms, not many people are using it.
Since the configuration is based on XML structure which looks pretty old to me. But based on their documentation it was done to support all the major platforms
Algorithm: I have found this link nurlybayevaAMS9 related to algorithm, hope this may help you.
Try avoid writing cross platform application. It is doable using HTML5+jQuery. But you can never get the same look and feel as native app. secondly windows, ios and android have their own look and feel and will come up with their own elements. You can never cater to all three having same code base. Better is to code using native sdks.
1) Never used PhoneGap, although aware of it, but don't forget to consider a simple HTML5 application. If possible, this would save you lots of work and maximize compatibility.
2) You can develop great RESTful webservices with both Java EE (see JAX-RS/Spring) and Python (see django). The choice is really more a matter of personal taste.

Help asked for iPhone and Android app

Im new to the development of apps and i've got some questions.
First let me tell you about the app i need to make.
As an intern at a company i need to develop an iPhone and Android app, they want me to create an app that is based on a existing CRM database.
I need to get data from the database and show it on the iPhone, this data should be edited and send back to the database.
The company itself does not has experience in the development of mobile apps.
EDIT:
The requirements i wrote above are the basic of the application, it will have alot more functionality implemented after the basic has been made. Something like an auto sync, either the database or phone will sync with each other once in a while. And when you are called on the phone it will also check the number in the database and if found the name is displayed instead of an unknow number. Just 2 things that should be implemented after the basic app
Is such a thing possible with an iPhone/Android?
As i have no experience with Objective-C, and little experience with java
Is it easy to learn, i have good knowledge of C#
What platform could you suggest for me?
As i need to develop for both iPhone and Android,
What is the quickest way of developing for both at the same time?
i've done research but as i do not have an mac at the moment i can't try stuff out for the iPhone.
Titanium Appcelerator is something i liked, and since this works for both iPhone and Android i think this might be a good option. But as i do not have any experience i want some good advice from those who have experience before i start programming.
tnx in advance,
~kamikze the rookie
You can also try PhoneGap.
You can use web services to connect to databases
As per your requirements, use Titanium Appcelarator, which will make you write your code in JavaScript, and will generate apps for both, iPhone and Android.
What you're wanting it to do is fairly simple and shouldn't introduce a lot of complexity before you.
Go ahead with Appcelerator, if you don't want to spend a lot of time learning Android SDK and Objectiv-C
It sure is possible to access/change databases.
If you have good C# knowledge then getting started with Java should not be an issue for you.
I think it should be quite easy to implement for Android, but I also have no experience in iOS development (don´t have a mac)

iPhone app design and distribution model

I need to create an app for a large company.
Their aim is to distribute this app to all of their customers (who themselves are companies - not individuals) and the end-user will be able to query their relevant information through this app.
The app will receive all of its data through webservices and will require login on every use.
On the one hand a web application might be suitable as all the data is anyway online and also distribution of such an app would be trivial.
On the other hand, they might want features in the long term which use the camera etc. and also the administration of the website (in addition to the existing web services) might be a problem - which means a native app working with web services is the solution.
The next question is the preferred way of distribution for this app if it is a native app.
I know Apple have the Enterprise program (which seems to have changed - I no longer see the reference to >500 employees or 250 device limit).
In my case there is one main company distributing the app to many customers so I don't know whether this program is appropriate.
Any advice would be appreciated.
I once had a similar problem... we ended up with the application in the store and an authentication mechanism inside the application. Most likely, customers would have to provide the user credential they use to authenticate at the web application to the iPhone app as well.
For the decision whether to build a native application or use a web application, I would recommend using a hybrid approach. This way you can start with an application which is based on an UIWebView and extend it with features only available to native applications...

Will a Safari-based app for iPhone be accepted to the iTunes store?

I'm about to begin development of an iPhone app. The app itself is fairly basic, and I want a speedy turnaround time.
I'm a web developer myself, specialising in traditional web technologies such as PHP/MySQL; I have no experience in Objective-C.
My plan was to create a very basic iPhone app that is just a Safari service that passes some basic variables to a URL. That URL is the app built in PHP and housed on my servers, this way I can create the app very quickly without needing to outsource anything.
My question is whether apps of this nature would be accepted into the iTunes store, or would they be out-right rejected? Anyone's experiences or comments are very welcome.
Thanks
It could go either way, but mind bullet 12.3 from the App Store Review Guidelines:
12.3 Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected
In my opinion, a simple UIWebView wrapper around your web site comes close to the definition of a simple web clipping. Your approval may very well hinge on your luck in drawing a sympathetic reviewer.
It really depends upon your application...These kinds of application have been approved in the past but again I am saying that it depends on many factors.
Try to test your app in every possible manner and also keep in mind the memory issues.
Best of luck!!!
Should be fine - its called a web app and there is software out there that will do just this for you.
All you need to do is to make a UIWebView and put your web app into it.
Also look at http://jqtouch.com. That gives you some idea of what you can do web-side. :)
http://www.netbiscuits.com/559
Native Hybrid Apps
Native apps can interface more deeply
with the mobile handset modules and
sensors to create an even richer
mobile user experience. Netbiscuits
provides pre-build native apps
frameworks for all major mobile
operating systems to be easily
customized for the needs of
enterprises.
Get "2in1" by combining the power of
mobile websites and native apps by
wrapping mobile websites into hybrid
apps and list them easily in all major
app stores of providers like Apple,
Nokia, Google or Samsung to open a new
mobile distribution channel. The
benefits of this approach are fast
time to market, minimized development
and maintenance efforts and maximum
mobile cross-platform technology
coverage.
Yes, it will be accepted as long as you stick with HTML, CSS, JS and Obj-C on the client side. You still need to wrap it in an iPhone app. In my experience, the best way to this is to use http://www.phonegap.com/ or a similar framework.
You'll have the option of deploying you app through iTunes or as a regular web app (you users will be able to create a link to your web app right on their springboards)
It SHOULD be accepted, granted you test test test and make it look just like a native application. Also you'll have to make sure that your server is never down, or if the application can't reach it just display an error message. You also have to keep in mind that there are a lot of iPod Touch users, and they don't have access to the internet all the time. Which means that chances are you'll get a BUNCH of 1 star reviews