Do desktop applications use the same sandbox idea as ios does - iphone

I am writing a report on the differences of mobile development from developing a desktop application. When writing an app for windows, are all contents of an app stored in an application sandbox like in ios or blackberry development?

No; even though environments like Java and .NET "sandbox" their applications, this only deals with the memory of the application while it's running and the sort of resources that can be accessed. iOS sandboxing completely isolates the application, including its storage.

Short answer: No
No so short answer: It depends on the platform you use. Software developed in java use a Sandbox while others don't

It should also be pointed out that Mac OS X Lion provides a method of sandboxing that they encourage using, and will enforce using on apps available through the App Store. There are places to get a more in-depth description, like John Siracusa's great review on Ars Technica (or his extended discussion about it on the Hypercritical podcast), but generally it works on the idea of priveledge separation. Each process requests access to the priveledges it needs (e.g., reading from the file system or writing to a network socket). The program is then divided into multiple processes that each only use a small number of priveledges, so if one process is compromised it won't have enough priveledges to do serious damage. Definitely take a look at a more detailed description, it's a pretty interesting security feature.

Related

IPhone Automation

Are there any libraries/tools to automate iphone interactions. My research has turned up UIAutomation but this seems to be limited to apps in a local testing environment.
I would like to automate interactions on apps that have been published and downloaded to my iphone. I am familiar with automating and testing in the web space but I am new to Iphone development. I would even appreciate strategies without libraries.
No, there's no way to automate interactions with other applications. For the most part, iOS apps can't interact with each other at all.
Update: Apple’s Shortcuts app provides a degree of scriptability, as does the popular IFTTT (If This Then That). But it’s still not automation at a fine level… you’re not controlling the app’s UI, just sending it messages to perform canned actions. So likely still not what you’re looking for.

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

Demand for iPhone App ported to Android?

Although not really a programming question I believe many developers would have come across this and therefore give the best answer.
Currently I am developing an App for iPhone for the organisation I work for. Its close to release and there is heaps of interest when I present it but the occasional question comes up am I going to port it to Android. My answer is I would like to but according to web stats more than 90% of phones hitting our website are iPhones and the other 10% is declining (probably people migrating away from Blackberry, last count was 98% was iOS)
Now if you read the media many people would like you to believe that its a split market between Android and iPhone but this might be just in the U.S where the single carrier for the iPhone has limited its consumer uptake because all the information available to us (at least in my organisation) states otherwise.
I was curious to hear from other people who have looked into these stats both inside and outside the U.S because when I tell the person asking that there is no demand they dismiss it and say its growing, once again contradicting the stats available for our organisation.
I am really interested in Android dev so don't really want to hear that I should just make it to give people an alternative, it's hard to justify to management that I should spend their money to deliver content to 5% of our market. Currently it makes more sense to make a cut down web App rather than an Android App.
Be interested to hear your thoughts. Cheers
Honestly, I would argue it simply depends on your market. For instance, in my location Android users are increasing steadily. It still took us a long time to commit resources for development. Plain and simple, until recently, there wasn't enough return value to develop an Android app. If your Android market is only a small percentage of your market, then the resources would probably better be spent within your main competencies (i.e. for my company, developing more iPhone apps). It is easier to make a presence for a new app or upgrade in a market you are already established in. After creating the Android app, you would need to spend more resources on creating brand awareness, which if you already have a successful iPhone app, wouldn't be necessary if you simply created more iPhone apps. Also, let's be honest, the Android marketplace is a bit of a mess and hard to market on. Don't get me wrong, I have a healthy respect for Android and its capabilities, but unless you can see a return on the app, there is no point in developing it.
Depending on the type of application you are developing, it might be worthwhile to utilize a mobile framework that allows you to easily develop for both devices (plus many others). This is not the solution for all applications, such as those where speed is critical or games, but for many apps it might help. Have you looked at Appcelerator or PhoneGap? Just be careful to do plenty of research and make sure they support all of your requirements before jumping in.
It's difficult to answer your main question because the statistics related to mobile devices varies immensely, especially related to the type of application you are developing. Certain types of users prefer one type of phone and those users typically will use only certain features. For example, BlackBerry users are less likely to download games than iOS users.
For web apps
The approach suggested above is a nice approach because phonegap, appaccelerator or rhomobile do provide a sort of a virtual environment for applications developed in HTML, ruby. However, that might not be sufficient in a number of cases.
One of the approach i have seen developers adopt a lot for native apps
If you have developed your application using C code for the application state machine and lower levels then that code can be ported straight away to Android and be plugged into Android app using JNI technology.
The UI will have to be re-created.
What is the value to your organization of that 5% of customers being able to have a native Android app, versus the company's development time/resource cost?
Now that you've done all the app architecture and design work (including artwork, documentation, etc.) for the iPhone app, will a porting or rewrite for Java/JNI/Android take less development time by some multiple?
I think the most important factor is that if your company have the resources to maintain two version of the app. Would it be more beneficial to maintain native iOS app and a mobile version of the site? Since as you mentioned the usage of non-iOS devices of you website, as a metric lead a conclusion of such already.
As a matter of fact, if you have put most of the logic to the server back-end, writing an android app would not take anywhere longer than writing an iOS app, as long as you've programming experience in Java.
Also contrary to common beliefs, since the market share of Android phones are not as good in your place (would you mind telling us where your company is resided in?, it would in natural have less localized app in your geographical location. So creating an app specifically for them would gain more acceptance. That is fact, is a good thing. (see: Long Tail theory)

What cell phone has the widest potential market for software?

I developed a flashcard program a while back for learning Japanese. I've been considering porting it to a cell-phone. What is a good target platfrom? I'm thinking about iPhone, HTC Touch HD (system software: Windows Mobile) or a Nokia (system software: Symbian). Since I know a bit of JavaME, something that runs that would also be cool.
Here's the most recent market share data. Have you considered building a web-based product consumable by all smartphones with decent web browsers? Sites like x.facebook.com are not OS-specific but are app-like enough to provide a good user experience. Building such a site and charging a subscription would be one approach to serve all markets.
Well the Apple store just celibrated its 1,000,000,000 download the other day, so I would say that the iPhone is the largest and easiest phone market to target. Also the Apple store makes it extremely easy to sell your application (they keep part of the revenue of course).
Perhaps you might like to ask which phone has the largest market share in Japan?
Also I understand Microsoft has plans to start an app store for Windows Mobile.
Since you know JavaME, take a look at developing for Android. It doesn't have a large market share, but at least you'll be able to leverage your existing skills.
You won't be able to find a common language and development environment that works on the majority of phone platforms. Once you select a platform, you're kind of committed to it unless you want to port your app to an entirely different language.
Nokia has started heavily pushing a mobile development platform based on Qt. Nokia sells a LOT more phones than Apple does.
Why write iPhone app #1,000,001 when you'd be lucky to get $500 for your investment?
There's a huge craze around iPhone apps... at this point it's totally unjustified from a developer point of view. (It's great for the users)
Qt is a really amazingly well done C++ platform (Nokia bought it, obviously :). I'm having a good time writing PC apps with it... I plan on buying a Nokia phone I can write Qt apps for soon. At that point, I'll be ditching my old iPhone (original unit, not 3G).
When the SDK came out, I thought the world of the iPhone. I even bought Apple stock. However, no Java & no Flash because Jobs is a control freak is just plain stupid. GPL incompatibility really hurts, too. I'm also not buying a Mac just to develop software for the thing.
A few weeks ago I was reading an article about a product called "rohmobile" that was a custom Ruby framework that run's on a micro ruby web server. It allows you to compile your application against all the popular mobile phones (Apple, Microsoft, Android, BlackBerry, Symbian). It seemed like a very cool idea and it's open source actively under development. The framework comes with a sync soltuion, so you can persist data to the local device using REST/SOAP. As I explored the product a bit more, the only thing that seemed like it would be a pain is the setup of the enviroment(s) needed to compile the code for the various device.... if you could make it past this, then you'd have a solution where you could support a bunch of difference devices with a single code base!
http://www.rhomobile.com/
** I've never programmed in Ruby but the syntax and the demo made it look really simple, since it's really just a local web page running on the micro web server installed on the device! The UI is HTML/CSS based. I think the product is still in Beta...
Just my 2cents~
Well I would start to find a system / programing language which is available for the top phones on the market.
I think a good go is python for that. Which makes it easy to use large portions of the same code on all of the phones which are going to be supported.
Then I would probably start with the iPhone, because I believe its userbase is still demanding for new toys :)
Creating a webapplication would be another way... but that would mean you need to be online. if you are not using flash or some other possibilities of persistent storage.
P.S.: I would not use javame :) .. I still don't like anything java at all

How does Apple know you are developing iPhone apps on MacOS?

I know there is a requirement in their EULA, but I heard about people getting their apps developed on Windows into the app store.
How can Apple find out, or do they even know?
They don't, so if you get a native compiler and toolset up and running on Windows, more power to you.
But realize that:
You will not be able to use a language that compiles to bytecode (that's Java, C# and the .Net languages, Perl/Python/Ruby, etc.). Apple will most likely not allow any sort of interpreter through the App Store.
Chances are your tools will not contain an Interface Builder equivalent or an iPhone Simulator equivalent. You're going to be writing a lot of code and spending a lot more time testing.
You won't have local documentation. You'll either have to use Apple's website or rely on third-party documentation which may mix App Store-allowed and -forbidden methods without indicating which are which.
You won't have Xcode's editor, which is highly specialized for Objective-C. You'll have to type a lot more.
You won't be able to get help as easily since you're not using the same tools as others.
You will never know when a bug is in your code, your tools, or your platform. People using the official SDK can file bug reports on the tools just as easily as the platform.
Your tech support incidents are worthless, because you're violating your contracts.
If Apple ever does find out, you're likely to be kicked out of the App Store and all your work will be for nothing. Unless you're an idiot, this thought will worry you.
If you're a hobbyist, these may be acceptable to avoid paying $400 for a used Mac mini, but if you're not a hobbyist...this is no way to run a business. Pick up a used Mac and think of all the money you're not spending on a factory, a store, offices, inventory, or employees during your setup time.
There is no sdk available for Windows. XCode only works on Mac OSX, how would one compile, test, and run the app if not on Mac OS X?
I dont think they know. There's no official SDK for the PPC architecture, but some simple installer hacking yields a working binary for my Powerbook. Similarly, if you get your code working on Windows, more power to you...