LION OS: Run Mac app in the background - osx-lion

I am new Mac programming but having enough experience on iOS development. I am developing a Mac application. I want my application to be running in the background of the system always and do some kind of syncing, like Dropbox does. I want to know how can i run my app in the background always as soon as my app is launched and do some process from my app in the background in certain interval.
Please advise!
Thank you.

Of course you can, Mac is a full fledged OS. developing a osx deamon that runs before user login using xcode

Mac OS X is just UNIX at its heart. Anything you can do on a *NIX system, you can do on OS X. See: Interprocess communication.
You really need to understand the concept of IPC before you can tackle how to accomplish it with a specific OS.

Related

iOS development on Windows [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
How can I develop for iPhone using a Windows development machine?
I've read a lot of questions and answers about developing iOS apps on Windows:
iPhone development on Windows
How can I develop for iPhone using a Windows development machine?
But most of the ways to accomplish this is because the people with this problem (make ios apps on windows) want to make apps for themselves. Also, some of them suggest web apps.
I'm working for a company who needs to make a little App (later other companies will need more) and the person who is in charge of all about IT told us that we need some facts so we can demonstrate that we really need a Mac for developing apps for iOS legally.
First, I don't know if all that says on this page would be enough https://developer.apple.com/support/ios/ios-dev-center.html
To develop with the iOS SDK and Xcode, you must have an Intel-based Mac
running Mac OS X Snow Leopard or later and you must be registered as
an Apple Developer.
Now I have some questions:
Is there a legal way for a company to make iOS apps on Windows?
If one of those ways is running OS X under a Virtual Machine... Is it possible to do it with OS X Lion USB Thumb Drive?
I know there are some SDK such as Marmalade, Corona, DragonFire... and they give us licenses but are they 100% reliable? Would apple give us support if we use one of these SDK?
Does Apple check if the app was created over a legal OS X copy? I mean, when the code is compiled, is there a sign so Apple can check that the app was made without cheating?
Creating games on OS X (VM) would be hard?
In the case we get the Mac (mini)... Would we need the Magic Touch or Magic Trackpad to test multi-touch? Or is only possible doing it by pressing one of the keys plus the left click?
Creating Web Apps would be a solution? I know that we can't use the Camera of the device using Javascript but is the rest ok?.
Testing
Some of our co-workers have iTouchs but we don't know if the company should buy a new one. Also, Would you suggest to get the oldest generation of iPod Touch for testing purposes or only the 3rd and 4th generation?
I hope you could understand me. Thanks in advance!
Update:
I got this answers:
You will work over Windows with the respectively SDK
Me: I know there isn't an official SDK for developing iOS apps on Windows from Apple.
The programming language that we will use is the same it would be install on a PC or MAC.
Me: Impossible?
Update
We got the Mac. ":D"
While there are things like FlashBuilder, these solutions don't provide the performance or flexibility of an actual native application. As for virtualizing OS X, this is not an option. The EULA for all versions of OS X specifically prohibit hardware virtualization (though I believe Lion allows for it but only when running directly on genuine Apple hardware. In other words, there is no way to run OS X on any computer other than a Mac without violating the EULA.
I dont have a Mac, but i setup a hackintosh (MacOSX running in pc) by following guide from this blog http://tonymacx86.blogspot.com/. If your pc spec is compatible, the Mac OSX will running flawlessly, just like in normal Mac.
Since you ask this question, I assume you dont want to fork a money to buy Mac, so setup a hackintosh machine is the best option for you. You just need to spend some money for buying legal copy of Mac OSX. Yeah I also setup the hackintosh in order to develop iphone apps on a pc.
Although there are always hacks and work-arounds you'll need a Mac for any serious iOS development. You can pick up a Mac Mini for under $1000, I'd be surprised if you could setup a Windows machine that could build iOS Apps for fewer than $1000 worth of man-hours... plus you'd probably end up having to constantly tinker to keep it working.
AFAIK, Mac OS X doesn't reliably run in a VM on a Windows Machine, but that could have changed since I last checked.
Most of the cross-platform development tools fall back to HTML/Javascript-based technology that is run in an embedded browser and packaged with a custom tool, I'd tend to avoid those as the Apps that they produce will not feel native.
I don't believe that Apple checks to see where the code was built. Adobe's FlashBuilder can export to an iOS binary, those Apps are accepted by Apple.
Creating them shouldn't be hard... testing them may be a little slow, but you'll definitely want to test on real hardware early and often.
If you get the Mac Mini you may hold option and click to simulate a dual touch in the iPhone simulator, but for more significant multi-touch testing you'll need to target a real device.
Depending on your goals, a web app may be a good solution. You'll potentially lose some performance, and some control, but you may not need all that much to accomplish your task.
My personal experience with IT has always been like pulling teeth to get them to allow/support any Apple product. Don't let them talk you into some patch work alternate system for making apps. Straight up OSX is far and away the best way to go, especially since you guys are talking about doing more later. Do it right from the start.
Now with adobe flashbuilder you can make iphone apps through windows http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html it would all be coded in actionscript just like flash however looks pretty much alike. Personally I have never used it, i own a mac, but my school does cheers
Also I know you can put apps from this builder right into the app store just like the OS X process
You cant put it directly on a thumbdrive because OS X boots differently, you would need to install a new boot loader on you computer, but it can be done, look up Hackintosh
Finally , you do not need the magic touch pad, it is not possible to do multitouch while running on the simulator via OS X, you must put the app on your phone to test multitouch
Is there a legal way for a company to make iOS apps on Windows?
My advice is to try as hard as possible to get an Mac.
But just to provide another alternative :
Try Phonegap. It's basically a HTML5 wrapper, mainly used by app that needs to be published in multiple type of devices. However it also able to access native resource like camera and storage, which you can see in their feature page.
If your concern is more into development machine, by using Phonegap you can develop an app in any OS. You don't need to buy multiple mac for all the developer.
PhoneGap also have a service called PhoneGap build which is actually a cloud service that able to build your code to multiple platforms, including Iphone. This is legal and you can publish it App store.
If one of those ways is running OS X under a Virtual Machine... Is
it possible to do it with OS X Lion USB Thumb Drive?
No, You can only run OSX virtual Machine in OSX also.
Creating games on OS X (VM) would be hard?
It depends on the developer. But since the game should be tested in emulator, your question is not that relevant.
In the case we get the Mac (mini)... Would we need the Magic Touch or Magic Trackpad to test multi-touch? Or is only possible doing it by pressing one of the keys plus the left click?
Xcode Emulator able to simulate that. Read this blog
Creating Web Apps would be a solution? I know that we can't use the
Camera of the device using Javascript but is the rest ok?
If you are using PhoneGap, it's basically web apps wrapped by native. It's still give you access to resource like Camera, Compass, Storage etc.
Would you suggest to get the oldest generation of iPod Touch for
testing purposes or only the 3rd and 4th generation?
The iOS 5 SDK has many new features that make app development easier. By the time your app is ready for release, most users will have moved on to iOS 5. It is my understanding that iOS 5 does not support 3rd-gen devices, so there's no point in obtaining those if you're going to use SDK 5.

Can I develop for iPhone using Pear-PC or similar besides VMWare?

I've got Windows Vista and Windows 7 here.
I intend to create an iPhone application which connects to my website in order to read and show some database records.
I cannot afford a Mac Mini or buying expensive hardware and software.
I was wandering if it's legal and possible to create iPhone applications, running Mac OS X under my Windows, using tools like Pear-PC or similar products?
I don't think you will be able to use Pear-PC as the iPhone SDK requires an Intel processor, but there are lots of other options listed in this question.
It's illegal to run Mac OS X on non-Mac PCs. Not that it stops people from doing that.
It is definitely possible to develop iPhone applications using VMWare to virtualise a Mac OS X guest on a Windows or Linux host. The major problem is that 3D acceleration does not work, so you will not be able to use the Simulator for any OpenGL testing.
As for the legality of it all; it's hard to say especially since you did not mention your location! If you buy legitimate copies of everything and modify them yourself then it ought to be OK. I can say for sure that Apple probably has no way of telling and/or does not care what you use to develop on.

Development of iPhone application in linux [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Starting iPhone app development in Linux?
I have to develop an iPhone application that is able to transfer real time data from a server to an iPhone.
Some real time data examples are:
cricket scores,
stocks,
etc.
We have been told to develop our project in Linux using Objective C. As I'm completely new to this field, could anyone give me any ideas about how to start the project?
Is it recommended to use Linux?
You'll have to use Mac OSX if you want a sane pipeline. You're also going to need to pick up a book on iPhone development. You can run OSX in VMWare if you want by following the tutorial here.
Start by going back to the project manager and tell them that you need a proper Mac to develop for iPhone.
Any hacks you apply to make this work under Linux will just cost you more money than a Mac mini costs now. Unless you are a slave and work for free?
Also using Linux hacks for commercial iPhone development is a violation of the iPhone Developer Program contract you signed to publish applications on App Store. So your legal department should be signaling the red flag if project manager suggests Linux for iPhone development.
Don't even think of using Linux. You'll waste so much time hacking together a development environment and you still won't be able to get some of the required XCode tools such as code signing. It'll be easier & cheaper to just get even a Mac mini.
No, don't use Linux to develop iPhone apps. While there are Objective-C compilers available, you won't have access to all the Cocoa libraries, which are the bread and butter of iPhone development. You'll need a Mac.
Adding to the other comments here discouraging the use of Linux for developing iPhone applications, unless you are targeting jail-broken iPhones, you must have Xcode for signing and provisioning iPhone applications. Also, you'll have no method for running your code inside of a simulator. The easiest/cheapest solution is to buy a cheap Mac (a Mac Mini can be had for under $600 using your current peripherals).

Specifying which iPhone OS to run on the device?

I have noticed in the iPhone Simulator an option in one of the menus to specify which OS to run the Simulator under. I'm wondering if something similar is possible for the device itself (of which I have only one), so I can test my app on the actual hardware under varying OS versions?
It looks like you can load a specific version of the OS for testing (FYI, I have not tried this myself, so I do not know how long it takes, etc.). Plus, it probably wipes all the data.
iPhone Development Guide: Restoring System Software
4 . From the Software Version pop-up menu, choose the version of iPhone OS you want to place on the device.
If your one device is also your main phone, this might not be practical though.
This is not possible since the iphone cant run multiple versions of its os. The simulator allows you to do this since it running a vm to simulate the os.

iPhone Programming in Mac OS X running not in a Mac Computer

I want to try some "programming for iphone".
For that I need a Mac OS X, no question about it.. But I have a problem I don't have a Mac Computer.
I have a Intel Dual-Core PC, running XP. Snow Leopard its for Intel, but for Intel Mac computers, right?.
If I manage to install Mac OS X Snow Leopard in my Notebook.
Do you think I can still install and do programming for Iphone, as well in a Mac Computer?
There will be any problems in the programming or debugging?
And there is another thing.. I don't have an iphone. That will may be a problem right?
Yes, as long as you got it installed correctly and it worked well with your hardware (drivers working correctly and hardware properly identified). http://osx86.thefreesuite.com/ If you are doing iPhone development, you need to pay special attention to making sure your USB drivers are working well to. This and other driver/hardware issues may give a headache trying to get things to not only work, but work well and properly.
That is not the easiest task though and can be a real pain in the anatomy. A used cheap intel mac is the way to go to get started. (mini, imac). Just make sure it is an intel mac.
If you dont have an iphone, then you would just use the simulator for all your testing. This is not ideal though as you could not test your app properly. You also cannot use all iphone features in the simulator. It can only simulate so much.
For more info on limitations of simulator. http://trailsinthesand.com/iphone-sdk-simulator-limitations/
Here is a discussion on why the mini is a good choice: Will a Mac Mini suffice for an iPhone Development machine?
Discussion on developing with Ipod Touch vs. Iphone for the Iphone: iPod Touch compared to iPhone as development platform for iPhone apps
And a question over at serverfault about os x install on pc: https://serverfault.com/questions/38496/mac-os-x-install-on-pc-hard-drive/38498#38498
This isn't the place, but providing you get OSX running then:
You need stable USB support for your MB
You might need to mix-up OSX and Darwin/Mach to get full hardware support
The iPhone emulator may well include hardware-checking code
It is cheaper to buy a second hand mac-mini
The questions already been answered but I want to add this to the overall topic.
I specifically bought a Mac to develop iPhone applications. What this single task opened up is far beyond what I was expecting. To list a few things:
I'm extremely impressed with the hardware. No hardware vendor competes with Mac's hardware from what I can tell.
The OS is sweet. I can't list all of the details but the virtual desktops alone is wonderful. Check out the Wikipedia page: http://en.wikipedia.org/wiki/Mac_OS_X
I run Windows Vista from VirtualBox and it works great.
Objective-C -- A very nice programming language; I which I could use it more on windows.
All in all, I can literally get rid of all of my non-apple hardware and run Mac OS X and Vista from the Mac hardware and everything would be great.
My point is, the Mac is worth the price.
Buying a $999 Mac may not be such a bad idea...
And please note, running the Mac OS on a non apple computer is technically a license violation. I don't agree it should be, but it technically is.
UPDATE: You said that you want to see how it is done. You don't need a Mac (or the OS) assuming that you don't want to compile and run programs. Visit the iPhone Developer page at apple. You can get some free samples just by doing the basic free registration (don't sign up for the paid one).
From there, you should be able to download a few samples and look though the source code. You won't be able to view Interface Builder files, but this would at least give you some idea of the Objective-C code.
You can further gather more information online by going to websites like:
iPhone Development Blog
iPhone Development
iPhone Development Bits
There's a commercial environment which allows to develop iPhone applications directly from a Windows machine. You might want to give it a look instead of going through the huge and illegal hassle of setting up a hacked version of OS X on your PC.
http://www.dragonfiresdk.com/index.htm
It was released recently and they claim that some applications produced with it have already been approved for release in the App Store.
From http://daringfireball.net/linked/2010/06/15/dragonfire-sdk :
Their pitch: write iPhone apps using C and C++ on Windows, using Visual Studio, using Zimusoft’s SDK and their own iPhone Simulator. Then you upload your project to Zimusoft’s servers, where they take the project and compile it using an actual Mac and Xcode. You can then submit the resulting “real” binary to the App Store yourself, or let Zimusoft publish it to the App Store themselves.
Try Hackint0sh VM-ware torrents, I haven't had any luck so I bought a iMac instead but I hear that this is an option.
For first testings and learning the language and the concepts this should work. Maybe you are even able to install mac os into a vmware or virtualbox virtualmachine don't know which program applies for your operating system. You should be able to run Xcode and the Simulator and learn all the basics.
But if you want to develop serious Iphone apps I think you need an Iphone because getting a feeling for performance, User Interaction with the touch screen and so on can only be tested on the device itself.
And by the way I think this the perfectly right place for this question.
Agreed with most of the above points.
Mac mini's have gotten cheaper as of late especially if you buy a used one. Think of it this way if you buy a mac mini your first goal as an app developer is to release a paid app that will pay for your mac mini. Making money on the app store is NOT rocket science. It just takes a decent product and some common sense.
Another solution instead of getting an iPhone is to get an iPod touch. It will gives you 80% of the iPhone functionality for development testing and you won't have to sign up for the monthly plan.
FYI if you want to build for Blackberry up until recently it was hard to do without Windows so its not as if Apple is the only one that forces you into certain hardware/software combos to build for their platform. If you want to build for Windows you need to run Windows.