I'm new to mobile development world so i want to know what's the difference between mobile application architecture and other simple application architecture (no mobile application).
Mobile applications are similar to Rich Client architecture in all significant ways.
Related
As far as I am concerned and what I've already implemented there is a way to cooperate somehow with mobile apps such as sending some instructions between mobile and LabVIEW instruments but...
Is there any way to implement mobile application with LabVIEW ?
I suppose that officially not, but what about some external frameworks such as LabVIEW hacker toolkit ?
I've never seen anything that allows you to create native apps. The usual solutions other than data dashboard are using web technologies:
Write a html page that LabVIEW can host that can load on the mobile device and use http or websockets for communications. There are some toolkits to automate this for example LabSocket (though not sure how much mobile testing is done with it).
Remote viewing technologies. I saw one the other day called wezarp which works on mobile.
All of these depending on a Windows based application that you are talking too though. I'm afraid natively I don't think anything exists and would be very hard to implement as you would need to play with the LabVIEW compiler to cross-compile to objective-c, java or javascript.
There was a way: NI LabVIEW mobile module which worked for windows mobile. You would program an app in LabVIEW, compile it and load onto your Windows phone. I recollect it worked pretty stable. The solution is not recommended for new projects
For dashboard style panels, there is Data Dashboard for LabVIEW Android smartphone version allows you to view only. (tablet version allows you to exercise limited control options) Also available for iPhone.
Something available here for select devices only
i try for a few time now to make app for mobiles with appmobi XDK phoneGap XDK from appmobi, sencha and appcelerator but except iphone where the app works ok in android mobiles doesn't work well. Any other program except these or any tricks for make it work better in android and in others?
any help it will be very important
thanks
Actually i want to avoid that.I want to build for all mobiles together in the same time.That's why i used that programs. I don't known a lot of thinks and i am looking for a simple way to do that. I want a way which i can read about it on internet and i can find thinks because except jquery mobile i can't find for any other library. So did anyone known how i can find the best way that's my question.
thanks for your time and your answer.
Not sure why you're asking for a "program" and then referring to some technologies/tools (Appcelerator, PhoneGap, etc).
Anyways, I've been developing cross-platform mobile applications in the last few months using Appcelerator for almost everything. However, they technology you'll choose also depends on your needs.
There are three kinds of mobile development these days:
Native Mobile Development: Using Objective-C (language) + X-Code for iOS and Java (language) + Android SDK for Android, etc. You can always choose something like Appcelerator if you're targeting multiple platforms, as you mentioned earlier. Good for: Performance, Native capabilities (using the camera, for example). Recommended Tools: Titanium Appcelerator.
Mobile Web Development: If you have only web skills (HTML/CSS/JavaScript) you can always make your web application mobile-compatible, using tools like jQuery Mobile or Sencha Touch. Recommended Tools: jQuery Mobile, Sencha Touch.
Hybrid Mobile Development: Using web technologies for your application (you'll be loading a web page), but using a native application (a web wrapper) for making the application Native (and distributable) across the Play Market or AppStore. Recommended Tools: PhoneGap, Trigger.io, or you can even use Titanium Appcelerator and use a Web View Component
How you should take a decision?
Do you need native capabilities (use the camera, accelerometer, etc)? If you, you need to go either native or hybrid.
How many platforms do you plan to support? If it's only Android and iOS, then you can use either Appcelerator or make it native. If you're planning to support more platforms PhoneGap or a Web Application sounds more reliable.
Do you plan to deliver your application through the AppStore/Play Market? Then you need to make it native/hybrid.
Note/Recommendation: By reading your question I noticed that you're really confused on mobile and programming stuff. Before going so far, you should take some time in reading more about overall development.
Perhaps not exactly a program but what can be quite convinient(based on your application needs) is to make it a webapplication. Then you can use libraries such as Jquery mobile to adapt the website to the mobile platform as well as incorporate technologies only available on smartphones, such as swipe, orientationchange etc. Then you can make a simple Webviewer for androind and iphone which can be made seperately.
You can look at Kendo UI
kendo UI mobile have support for : iOS 3.0+, Android 2.0+ and BlackBerry touchscreen devices.
What i really liked about it is native-like UI experiences for end users automatically on same code base for different OS.
You can check demo , change OS using OS SIMULATOR MODE
I am not associated with Kendo.
I would like to know what is the best technology to use when it comes to application development that works well for both web and mobile? The world is moving towards HTML 5 and CSS 3 and Icefaces , Richfaces and Primefaces all have HTML 5 support. I have to choose the one which would be better for existing applications to be converted as well as new application development.
I did my part of the research and found out that either Richfaces or Primefaces would be better but most of my applications were developed using IceFaces.
Please throw in your suggestions to choose the best technology for web and mobile. Thanks.
You may not be aware that ICEmobile-Faces 1.0 has just been released. It is based on the ICEfaces framework, providing all the benefits of ICEfaces, but includes a suite of light-weight mobile components. It allows you to write mobile applications in JSF that adapt automatically to the client device, so you can build one application that spans Android, iPhone and Blackberry devices. Additionally, ICEmobile offers device containers that provide device-specific integration to native features like the camera. Our focus going forward is to develop capabilities that easy development of web apps that span desktop and mobile environments.
I want to know what is the main technical difference between Web (ASP, PHP, Ruby, etc.),
Application (C, C++, .NET, Java), and Mobile (J2ME, Objective C) programming, and which is the hardest.
If someone learns one of these, can he easily switch over to one of the others?
First, from a technical perspective you should be asking the difference between Web Applications and Client Applications. Within each category, you can ask about the difference between standard Web Applications and Mobile Web Apps and standard Client Apps and Mobile Client Apps.
The difference between web and client applications is that web applications lack state: every page request is completely de-linked from every other page request. It is only through various technical work-arounds that web applications manage to maintain the illusion that a web app user is running a coherent application as they navigate from page to page. In ASP.NET, for example, the ASP.NET ISAPI DLL manages a "Session" object that pulls a session cookie from the user's page request and then provides uses it to identify the Session data appropriate for the handling of the request.
In a client application, by contrast, every aspect of the application is targeted at a single user and the "state" of the application is a given as you navigate from dialog to dialog. In addition, the tight integration of the application with the user's computer permits the use of on-board resources (memory, disk). In a web app, by contrast, there is little or no access to these resources except as mediated by the browser (which is a client application, not a web app).
Mobile web applications are, essentially, just web applications with two caveats: the screen size is considerably smaller and the browser capabilities are generally less robust. Thus, you'd write a mobile web app in pretty much the same way as a standard web app but you can not count on some of the capabilities that you usually have with a full-blown browser. This last constraint, by the way, is rapidly going away as mobile devices become more powerful.
Mobile client applications require a development environment, deployment strategy, etc. that is specific to the mobile device. The tools and techniques used in standard client application development don't map particularly well to the Mobile client. Instead, you'll need to learn new tools, controls and techniques. The only real exception to this rule are the tools available through .NET. Microsoft has attempted to provide as much commonality as possible although, even here, you'll find that you have a different mind set and different constraints than when developing a WinForms application.
Hope this helps!
It's the context in which these applications run.
Web Apps run on a server, intended to serve a large number of clients using a web browser. Even though the web-servers themselves run on some OS, the web applications that run on them are not tightly coupled to that OS.
Mobile and Desktop applications are usually more tightly coupled to the OS on which they run.
Mobile applications can be written identically to desktop applications, roughly as windows apps, console apps and browser apps (because most mobile platforms support a browser). But the mobile versions of most tools are more constrained; and there's usually communications involved, which often makes development more challenging trying to keep various kinds of State straight. And you usually have to be more sensitive to subtleties in the UI code.
There's really no particular dichotomy between Mobile apps and Web apps. The concepts aren't particularly orthogonal.
If you look at a programming framework like .NET, you'll easily be able to switch between Web (ASP.NET and Silverlight), Mobile (.NET mobile) and Desktop (.NET and WPF) as the languages are all based on the same core framework. You can write .NET in different languages, the most common of these are VB.NET and C#.
Personally I'd recommend C# if you are learning. You'll find more examples on the internet, and it will also be more similiar to languages that you may want to learn in the furture (JavaScript, Java etc)
I am willing to develop a mobile application. I wish to have something working for android, windows mobile, symbian and blackberry.
Which is the best way to do that?
I had read here:
You could aim to wrap the sections of
the platform specific APIs (iPhone SDK
etc.) that you use with your own
interfaces. In doing so you are
effectively hiding the platform
specific libraries and making your
design and code easier to manage when
dealing with differences in the
platforms.
I was hoping there exists a framework that does this for me, but it doesn't exist or I didn't find any.
I feel that sort of things will make my code harder to maintain and perhaps it's better to have one version for each platform.
Anyone with experience in the field?
Another links of interest:
most-promising-mobile-platforms
long-term-potential-of-iphone-windows-mobile-development-platforms
Does Java not count (in various guises)
Java on Symbian
Java for Windows Mobile
Java on Blackberry
Android Java Virtual Machine
It should be simpler to manage API differences in a consistent language/runtime platform where capabilities can be assessed in-code ... and configurations of code made at build-time.
As much as I dislike Java, it is fairly ubiquitous. As for the iPhone ... apart from it being much hyped and locked down ... you can get Java to run on jail-broken phones ...
What happened to Apple's open and friendly appearance? The cynic-inside knows the answer ;)
You might want to look into PhoneGap (http://phonegap.com/). From their own description page:
PhoneGap is an open source development tool for building fast, easy mobile apps with JavaScript.
If you’re a web developer who wants to build mobile applications in HTML and JavaScript while still taking advantage of the core features in the iPhone, Android and Blackberry SDKs, PhoneGap is for you.
In addition to using JavaScript, it supports JavaScript acccess to native controls and features of the phones (GPS, accelerometers etc...).
There really isn't any magic bullet that I'm aware of. Even within just the Blackberry platform, there are tons of different devices with different capabilities, screen resolutions, etc. And that's just from one, single manufacturer; Symbian and Windows Mobile are likely even worse.
The answer is likely that you should focus on relatively new and consistent platforms (accordingly with very few and all pretty much similar devices), like Android and iPhone OS, if you really want to reduce your code forking and maximize your audience.
My advice will almost certainly change within a few years when there are nine different iPhone OS devices and two dozen Android platforms.
The first question to ask yourself is if you need a native application, if you do not then designing a mobile web site solution should give you the most cross compatibility, failing that I would make a iPhone and J2ME solution (the J2ME can then be ported for Android relatively easily) for the greatest coverage of users
Or investigate Movilizer. Supports iOS, Android, WinPhone, WinMobile, Desktop PCs, embedded devices, ... and many more. It uses a design once run anywhere approach.
http://www.movilizer.com
try out different cross platform dev tools,
Developing cross platform mobile application