Should I obtain a Mac to develop or test my iPhone web app? - iphone

I've been developing an iPhone web app on a Windows XP box using
MobiOne Test Center and Safari for testing and debugging and
occasionally using a real iPhone for testing. The problem is that
MobiOne, Safari (desktop), and the iPhone all produce different
errors. Obviously I am most concerned with the errors that occur on
the iPhone, since that is the target device. (An example of the type
of error encountered is that an image that ordinarily appears as
expected occasionally cannot be displayed, so the little question-mark
icon appears instead.)
I have the opportunity to obtain a Mac for development, but I need to
know whether using a Mac will make a difference.
Have any of you moved to the Mac for developing or just testing a web-only iPhone app?
Is doing so worthwhile? Why?
Does the iPhone simulator in the SDK simulate an iPhone better than Safari on the Windows desktop?
Is there a reason I would need a paid subscription to the Apple iOS Developer Program?
Thanks!

In short: no, I don't think a Mac is necessary for developing iPhone web apps, especially seeing as you have access to a device to test on, and you seem to be fine in your progress of development.
If you're not aware, there's a debug console available on Mobile Safari on your iPhone. Go to Settings > Safari > Developer (at the bottom) > Debug Console and turn that on.
When developing an iPhone web app, you do not need to pay for the iOS Developer Program. That program is for developing native apps to deploy either to your company or the App Store only.
Web apps, on the other hand, are nothing more than web sites that are designed (i.e. include certain meta tags, have mobile-friendly interface designs) to be run similarly to native apps on a device, and harness certain Web technologies such as geolocation that are available to devices. Users view them in Mobile Safari like any other web site, but for the best experience are asked to tap on the + sign and add your web app to their home screens to be accessed as such.
The iPhone Simulator certainly does a better job than desktop Safari on either Windows or Mac OS X since its user interface shares that of the iPhone device, but I don't think you'll need it for testing and debugging if you have a device to test on.
The iOS SDK has a tool called Dashcode but I don't think it's much of a difference from the web dev IDEs that the rest of us use every day. As far as I can tell, Dashcode doesn't give your web app any additional features that can't already be implemented using the standards we're familiar with.

I would not buy a Mac or a paid subscription to the Apple iOS developer program unless I was writing native iPhone applications.
You should be fine with your current configuration. Just make sure you do the bulk of your testing on the actual iPhone, that is what your customers will be using.

Does the iPhone simulator in the SDK simulate an iPhone better than Safari on the Windows desktop?
Yes - there are some significant differences between MobileSafari and Safari for Mac/Windows - but you've got an iPhone to test on. The iPhone Simulator offers no additional debugging tools for iPhone web apps, so you're not going to be better off having it available than just testing on the device.

Testing on an actual device is better than testing on any of the Simulators, since that is what you mobile customers will actually be using.
If you are strictly building web apps, your money might be better spent on more test devices (devices with and without a Retina display, iPad, maybe an old used iPod Touch running some prior version of iOS for regression testing, etc.) If you are choosy about your colors, the color can vary quite a bit across devices, so it may help to find one warm display and one cold one (from old/different manufacturing lots, etc.).
So you don't NEED a Mac (unless you have other reasons for acquiring one).

Buy an iMac. You will enjoy the experience better.

It is my understanding that your application needs to be compiled on a mac before it can be sold in the app store.

Related

Xcode M1: Run Designed for iPhone

Hello fellow [iOS] Developers!
I've just got my M1 MacBook Pro and been loving how we can test our Apps without even using our mobile devices (props to Apple!!)
So far, I was able to test the app behaviour as it was for iPad (Running "Designed for iPad"), so I wonder if there's a way to build the app as if it was for an iPhone and run it on the M1? This would be awesome!
Yes, You can.
One simple smart hack is to
uncheck iPad from Deployment info
and then simply run the app you would see that the text would change to
Detailed Steps:
Select Project from Project Navigator
Select your specific target > Go to General
Under Deployment Info "Uncheck iPad"
Bas ho gya, Khatam, Tata, Bye Bye
Just run the Project
The answer is no, you cannot, if you mean native iPhone app on the M1. At least as far as I’ve seen. The simulator will continue to offer you to run the iPhone apps, as you probably have seen already.
As far as I understand, however, iPhone-only apps available on the iPhone are an exception. Whenever an app contains both iPhone and iPad versions of that same app (universal iOS apps), Apple ignores the iPhone version and makes available the iPad version exclusively out of those two iOS/iPadOS apps.
You should watch the video by Apple, ”Introducing iPad apps for Mac”, WWDC 2019, available in the ”Apple Developer” app (you can find it on the App Store). Here’s a web link if you prefer it: https://developer.apple.com/videos/play/wwdc2019/205/
Here is a quote from the transcript of that video:
Now along those lines, there's also some apps that are just not
candidates for this technology.
One example is iPhone apps. iPhone apps are optimized for the smaller screen, so they're trying to take advantage of that small screen. We really want you to have an iPad app that's taking advantage of larger screen sizes before bringing it to the Mac.
In 2019, this was all about Mac Catalyst on Intel Macs, but I think it still holds true today on M1: it is all about taking advantage of the similarity between macOS and iPadOS in terms of the screen.

Is it possible to build an iPad app on the iPad?

I would like to minimize the number of devices I would have to purchase to do iPad development so it would be nice if it did :)
I suspect the answer is no because I really doubt apple was kind enough to put an objective c compiler on the device. I guess an alternate question would be what is the cheapest apple platform I could use to build apps?
You are correct. Apple wants you to develop your apps on a Mac.
Here is a link to Apple's site describing what you need. A mac with xcode is a requirement.
No, there is neither a compiler nor and IDE available for the iPad. You need a Mac to do iOS development, but even a cheap used Mac Mini will do (and no, you cannot do iOS development on Windows, I'm afraid).
First to answer your "subject question": As far as I know, NO you cannot install Xcode development kit on an iPad and thereby producing new iPad software... Apple also would like you to buy a real Apple computer if you want to do real business with the platform.
BUT
With some effort and research, you can just buy an orignal Mac OSX 10.6 or newer. Then with some tweaking and fixes, you install this on ordinary PC hardware. This is because the Apple computers today also are running on Intel CPU's and PC motherboards.
Its not officially supported nor "okay" from Apple's licensing point of view, but once you get it running the computer / OS thinks its a real Mac and then you can run and compile Mac software as its running 100% as a Mac.
I've seen tests where the owner connected iPod and iPhones to iTunes and AppStore which didnt see anything unusual, so the owner was able to buy movies and music and applications as normally.
Same goes for installing pure Apple software such as Xcode and other Mac-Only software.
You can even install some boot-manager and be able to run Windows 7 and Mac OSX on a partioned harddrive I've been told.
The "thing" is called a Hackintosh. But I was warned that it is far from every piece of PC hardware that you can make run with Mac OSX, so a lot of studying is needed before succeeding I guess.
I am not sure if this app is compatible with ipad, but it can certainly MAKE your app. You still need the SDK to compile the code it generates, and you still need to purchase the dev program to release your app to the store.
Not to mention the functionality you can add is very limited, but it is the closest to developing on the device itself that you can get.
You could use the Notes app on an iPad, or a Javascript editing app, or a cloud hosted text editor from iPad Safari, to write HTML5/CSS/Javascript for a web app. Upload the resulting web app source text plus a manifest to some web server, go to it in Safari with your iPad, test it, and save it as a web clipping web app.
That's for a web app.
If you want to build native iOS/iPad apps you need an Intel Mac running OS X 10.6.x (but even a cheaper old used Mini or iMac will do, as long as it can run Snow Leopard 10.6).
Or at least fast network access to a Mac. You could remote access a Mac using one of the many VNC or other remote viewing apps for the iPad, and develop native iPad apps from an iPad that way, but it would still involve a Mac.

Is Android development restrictive in any way like for the iPhone?

Is Android development restrictive in any way like the iPhone, or can you download whatever and from whoever you want?
I want to learn about development for either iPhone or Android, but from what I hear iPhone development is pretty restrictive!
There are a variety of areas to consider regarding the relative restrictiveness of the two platforms.
The Market
Android Market is undoubtedly less restrictive than the App Store when it comes to the submission process. The upside is that you can get pretty much anything you want into the Android Market. The downside is that you can get pretty much anything you want into the Android Market (a market flooded with spam "applications" is in some ways a restriction).
A big negative on the iPhone side is the fact that your options for installing applications that are not in the App Store are limited -- you can either distribute the application as a beta (limited to 100 users) or jailbreak your iPhone. Android, however, allows you to install apps from anywhere, including a web page.
The Applications
One of the core design philosophies of the Android platform is "All Applications are Created Equal", which is supposed to mean that you can freely replace applications on the phone with a third party version. In practice this is not really the case, as many of the Google applications either have special capabilities not available to most applications (see: Android Market) or use undocumented/native APIs (see: Calendar).
The iPhone on the other hand makes no such claims about equality, and the Apple stance in general is "There is only one way to do it, and that is the Apple way". Additionally third party iPhone applications may not run in the background while Android applications can. New for iPhone OS 4.0 is the ability for apps to run in the background. One thing iPhone applications can currently do that Android applications can not is receive push notifications. New for Android 2.2 is the ability for apps to receive push notifications via something called the Android Cloud.
The Source
Android is open source - mostly (some firmware components are closed source). Even so, there is some rocket science involved just in getting the Android codebase to compile. In addition Google has sent cease & desist orders for redistributing custom images that include the Android Market and Google Maps application.
The iPhone is completely closed source, and recent changes to the developer agreement have been controversial as they mandate that all apps submitted to the app store be originally written in "Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs"
The SDK
The Android SDK can be freely downloaded; the iPhone SDK requires free user registration to download. Android development can be done under Mac OS X, Windows or Linux, while iPhone development is only possible under Mac OS X. You'll also need to pay for the $99 iPhone developer account if you want to test your software on an actual device (rather than the simulator).
The Userbase
And last but certainly not least, the userbase. When this answer was originally written the iPhone had a much larger userbase and was growing much faster than Android. This is changing as Android begins to support multiple carriers and hardware platforms (see: the Open Handset Alliance). The list of devices running Android is now quite long although none yet match the popularity of the iPhone.
Some analysts are now reporting that Android is outselling the iPhone and are predicting that Android will soon overtake iPhone for market share. Other analysts think that Apple will make up ground when the iPhone 4g is released. The former seems more likely based on the parallel history of the PC industry -- Apple's design and user experience were copied by GoogleMicrosoft and opened up to run on commodity hardware.
Nope! That's the beauty of Android. Even though there is a AppStore equivalent, you can download an app from anywhere. Plus, it's programmed in Java, so you don't have to worry about all that mundane stuff like garbage collection (just at the cost of speed).
Don't mean to insult the iPhone. It is a great platform too.
EDIT: A lot of people have been noting that the iPhone APIs are not restrictive, but rather the approval process is. This is true, however the iPhone's APIs are still somewhat limited, in the way of low level hardware access, backgrounding (only notifications in 3.0), etc.
iPhone 3.0 is a step in the right direction, but there is some work left to do.
Also, have you considered making JB iPhone software? I'm not sure of it's market share, but I do know of a lot of people with Jailbroken devices.
EDIT: I have read in some more posts on similar questions that Android's Java can slow things down due to the Garbage Collector. Just something to watch out for.
If you say iPhone is restrictive, I would describe Android as immature.
There are still many bugs in Android that you will inevitably run into if you are doing some none-trivial programs. Some of those only exist on the emulator while others only on the actual phone.
Though in my experience, developing on Android with Eclipse feels just as good as developing on iPhone with Xcode, if not better. The tool set provided by Google is very complete and is cross-platform. Garbage collector does make huge difference while programming.
I'm assuming you already have a Mac otherwise the iPhone wouldn't be an option at all.
iPhone development isn't particularly restrictive. Getting the resulting app on Apple's App Store is the restrictive part.
If the app you're working on follows Apple's guidelines on what an iPhone app is allowed to do, picking that as your initial development platform seems a no-brainer. If it violates Apple's guidelines and can't be modified to follow them, your market will be restricted to jailbroken phones - a very small subset.
Well is Apple open at all? Uhm.. eh.. no. Closed hardware, closed software, closed everything. I think Alcatraz is more open then Apple, at lease you get to leave your cell there.
You can write an application for the iPhone. Will it get approved? Well not sure. They could deny it for any reason whatsoever. You may have used a blue background and Apple only likes white and gray, thus deny.
However with Android it is completely open. You can develop for it, or even develop Android itself. No fear of ever being denied.
But in all seriousness. Apple has a larger market share, millions of people use and love the iPhone and they will most likely not be leaving for quite a while. While on the other hand the Android was for T-Mobile. Does anyone even use T-Mobile?
IMO if you do not have a gPhone I would develop for the iPhone. However as much as I dislike the Apple philosophy of being such a closed nature, they are the better bet if you wish to make some money with your application.
There are some restrictions...
some functionality requires rooted phones (e.g. Wireless Tether for Root Users)
distribution via the Android marketplace is subject to the Developer Distribution Agreement. Google limited access to this tether app due to their carrier agreements.
some Android APIs are not finished (e.g. Bluetooth HID)
'Restriction' can mean two things:
The ability to install anything you want. Google is very good at that, Nokia somewhere in the middle and Apple is the worst
What you are able to do with you app. They all have arbitrary restrictions on what you can and can't do, but it seems to me Nokia is the least restrictive, Google inbetween and Apple the worst (again).
YMMV
No, you can sign the application yourself and distribute the resulting APK file via your own web server or by other means.
Yes, Android is indeed open and you can publish whatever you'd like to the Market Place
But:
you still need to learn how sign your application and mind the technical posting requirements to the market (like keeping proper version IDs etc.)
if you really want to get/send a package from/to anyone, then the receiver of the package (called an APK file will need to know how to use a command line tool called 'adb' to administer their phone to install & uninstall applications. It's pretty simple to do, but
you need to have Android drivers installed and the SDK tools.
To be fair to the iPhone development model, you can also distribute test versions of your application reasonably easily, though perhaps not as easily as with Android. Your testers need to provide you a special device ID which they get from iTunes while the device is connected, then you create a license file containing keys for all of your testers which you distribute with the release directory of your application. The users then install your application via iTunes.
In most cases no, but Google has allowed the carrier and the device manufacture the ability to restrict certain things. Carriers are allowed to block individual apps. Also carriers/manufactures can prevent certain features of the device.
One example is the Motorola Backflip, it wont let you install non Official market applications. Also some phones do not have access to the Official Market.

iPhone and iPod Emulator

I intend to write some piece of code for an iPod and an iPhone. so, i'm looking for emulators for those devices.
basically an emulator which will help me test the application I'm writing.
Thanks.
To develop iPhone apps you need to download the iPhone SDK. This includes the tools and libraries to code you applications as well as a simulator to test your code. This tools are available only for intel macs.
You can get the sdk for free here: http://developer.apple.com/iphone/
To test you code in a real iPhone, you will need to join the iPhone Developer Program (http://developer.apple.com/iphone/program/), which is not for free.
Are you talking about writing an application or writing code for your website to display properly on an iPhone?
The former requires a developer subscription with Apple to access their SDK and emulator.
For the latter, there seem to be several emulators out there to test your web site, check out:
http://iphonetester.com/
http://www.testiphone.com/
A Google search for 'iPhone emulator' should find a lot for you.
The iPhone SDK comes with an iPhone simulator that you can use with Xcode during development.
You can download the SDK from http://developer.apple.com/iphone - you need to be a registered iPhone developer, however, although this is free, after which you can use the simulator.
Note that if you want to send your applications to a physical device you need to enrol in the iPhone developer program which starts at $99.
You probably want to actually get an iPhone for that. You'll have to register the $99 but then you'll get the ability to upload apps to your iPhone/pod.
You could also jailbreak your phone/pod and do whatever you want.
There are also apps available that let you transfer stuff to and from your phone in the appstore (at least one free, if I recall correctly)
If you want to do something more with the files than just transfer them to the phone/pod, it's likely that you'll have to jailbreak your phone/pod anyway.
I keep wanting to find a better abbreviation for typing iPod/iPhone. How about iP(od/hone)? Hmm, not better!

Development platform for iPhone application

I am new in iPhone application development and currently working on .net (C#).
Please suggest the development platform to create iPhone application so I can adopt very soon.
Which is best among these:
Xcode
Unity using script language c#
tersus
Or any other tool that is not on the list.
Is it possible to develop iPhone application using .NET framework? I'm not sure; I think not.
It's not possible develop application for iPhone on Windows platform. You need official SDK and it's only for Mac OS X.
Look to http://developer.apple.com/iphone/
XCode is the only development environment for iPhone and Objective C is the language it uses for this. You cannot use the .NET framework to build an iPhone app.
The SDK is free to download but you will need register (for free) with apple to get the SDK and all it initially lets you do is build and run apps in a software simulator environment; to put apps on a physical phone you need to buy a license (for $99) and go through a rather convoluted process to set up signing certificates.
The SDK and a variety of sample code and tutorials are all at the Apple iPhone developer site http://developer.apple.com/iphone/.
The official SDK is free but not open-source. All the tools necessary to build iPhone apps are free. HOWEVER you cannot put your apps on an iPhone or iPod Touch device without paying the $99 for the developer license. You can run the apps you build on the iPhone Simulator, which is an application that runs on your Mac. It looks and behaves pretty much like a real iPhone, minus a few obvious things (no GPS, no camera).
Go to http://developer.apple.com/iphone/ to get started.
Learn Obj-C . If you don't have mac then buy one.
Unity looks very promising, but it's cost prohibitive for an indy programmer. I looked at this last week and for me to get the package I needed I'd have to drop down almost $3,000. You'd still have to use XCode to compile your app though.