Home > Mac OS X > Rapid Prototyping using OS X Tools Rapid Prototyping using OS X Tools Eugenia Loli 2005-05-06 Mac OS X 18 Comments In a continuing look at the Mac mini as an embedded development platform, this article shows how to rapidly prototype a simple application, looking at the variety of tools and glue available natively in Mac OS X. About The Author Eugenia Loli Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker. Follow me on Twitter @EugeniaLoli 18 Comments 2005-05-06 5:53 am All our embedded devices target linux now, so we don’t need to target the micro-embedded devices with no OSs. The question is if GCC doesn’t provide what you want as an embedded developer platform then what other embedded compilers run on OSX? 2005-05-06 7:52 am do he mean that he programm the photo machine and uses the mac as developement platform? Or does he mean that the mac (mini) _IS_ the photo autmate? Last one sounds very unrealistic. I don’t think that the mac mini is designed for embedded use (24/7, rough outdoor conditions, etc). There is also no field service to repair such a system. 2005-05-06 7:53 am with that you get practically the same, but portable and as free software: http://www.gnustep.org 2005-05-06 8:00 am df obviously lacks a clue – most embedded dev environments run either natively under Linux or under Windows with JTAG or other connectivity to the target system. http://linuxdevices.com/articles/AT4036830962.html BTW you can cross compile to target most platform cpu architectures using GCC (You don’t target linux, you target a platform running linux). 2005-05-06 8:11 am There are no end of situations where this would be so handy. 2005-05-06 8:23 am Author: Programmers often ask how to make a program that runs “whenever a file is moved into a given directory,” and the answer is of course, “you would need operating system support to do it….I have never seen a comparable feature in another OS, so this seems to be a straight up win for Mac OS. Windows NT/2000/XP: ReadDirectoryChangesW() http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fi… 2005-05-06 8:30 am Dnotify… Inotify… sigh. And ofcourse there is the last resort of a nice’d polling thread to monitor the directory for changes. Nothing to see here, move along… 2005-05-06 9:00 am Of course, it’s called FAM(File Alteration Monitor) elsewhere, which is available in wide variety of OSes. As Kon mentioned above, FAM utilizes DNotify kernel support on Linux. 2005-05-06 10:59 am I don’t see what you’re talking about honestly with dnotify. The article says one thing, reality another. Reality usually wins. 2005-05-06 11:23 am The Mini is being used pretty badly in many cases. It’s not rated as a server, and there’s a lot more to a server than being able to get data out. The Mini has a standard laptop hard drive (for example) which has is rated for use for a few hours per day. It’s not a drive that should be used for 24/7 applications. The Mini would be a terrible choice for a server box as it’ll fail under sustained heavy load. As would pretty much any desktop computer. There’s a reason the server market exists, after all. Good server hardware will work under a much heavier load sustained for much longer than any desktop will. You may be lucky, but the odds are against desktops as embedded systems. What you *can* do, and very cheaply, is to rapidly use the standard OS X development tools to get an application up and running on a cheap Mini, show it to a client and then install a robust Apple server running your app. You can get from start to finish very quickly indeed, if you’ve got some skill. It’s nothing that’s not possible under Linux or Windows, but it looks very easy to do this on the Mac now. What compilers and linkers are available for OS X? Apart from Apple’s dev tools (gcc 4.0 or below if you like, the interface builder and the new and amazing Core Data) and AppleScript, there’s Automator (it’s more than AppleScript), RealBasic (good for very quickly getting a proof of concept up), IBM’s compilers and so on. Oh, there’s also pretty much any Unix or Linux app that you can get the source code for. And if you like, you can install VirtualPC and develop/test for Windows (although I’d recommend a G5 over a Mini for that). Java’s in there too, with the dev tools, and you can link interface builder to it I believe (not a Java developer on the Mac, just on my workplace’s PC-driven Intranet). OS X is an incredibly versatile development platform, but it’s not the solution to every problem. The Mini makes a cheap base for quick and dirty development, but it’s not (and never should be) an embedded system. Even the most rabid Mac fanboy should abhor that – it’ll fail in the long run, and lead to people distrusting Apple. … but it *is* cheap… 2005-05-06 11:35 am the Mac-mini is NOT the embedded platform. We’re talking about it as developer platform. Nobody develops on freaking stoplights. So the question is what tools the embedded developer has at his disposal on OSX. 2005-05-06 11:37 am The author of the article must have missed this feature working on BeOS, years ago: http://www.bebits.com/app/3019 FolderWatcher is sample code, and has been used by a lot of similar apps in BeOS, as well as Node Monitoring (the API) being used with quite a few applications. Not a new feature, and I know (as some have already pointed out above) that node monitoring was developed also on Linux quite some time ago too. I’m not saying that BeOS was first, merely that this concept is nothing new. -Chris Simmons, Haiku News. 2005-05-06 11:42 am I did mention a few, but you’re free to use this new-fangled thing called “Googy” or something. Apparently it helps you find stuff on this Intarweb gizmo so that you don’t have to rely on other people to do stuff for you that you can better do for yourself. 2005-05-06 1:02 pm Aside from GCC and the many Java IDEs available, there’s also CodeWarrior http://www.metrowerks.com/MW/Tools/Application.htm There’s a lot of libraries and other tools listed here: http://www.apple.com/downloads/macosx/development_tools/ But there’s even more. Most of the free tools available for Unix work out of the box on OS X also. 2005-05-06 1:22 pm Even the old Amiga OS had filsystem notifications, I think it came with Kickstart 2.0. Is that like 1990? 2005-05-06 3:06 pm Wouldn’t this be “rapid application development” or RAD? Rapid prototyping is a process for creating solid physical models from computer generated 3D data… a.k.a. 3D printing. 2005-05-06 3:20 pm Rapid prototyping is simply building a prototype rapidly. It can apply to software as well as anything else and does not necessarily imply anything to do with solid physical models. Rapid application development is different. It involves developing the final application/product rapidly, not just a prototype (which is usually a working model or proof-of-concept). 2005-05-06 5:52 pm 98% of you just b*tch and complain like a bunch of angry old women. I think the article had it’s values. I don’t feel the need to pick it apart only for the benefit of my ego. Funny how almost everyone here knows everything. Pure vomit coming out of your fingers as you type pure vomit.