Here's some stuff wakiapps has liked. To find more cool stuff, check out Explore »

wakiapps says...

We just heard from Apple today that WaKi SNAP! has now been featured in all the official Australian Apple Stores! (Bottom row, 2nd from the left in the photo.)

WaKi SNAP! has been installed onto the iPhones/iPod Touches there so that people are free to try it out at the store.

Thanks Apple! (Photo courtesy of Jeffrey from Apple Australia)

Check it out at the App Store here: http://snipurl.com/5j1mb


guykawasaki says...


clementine says...

       
Click here to download:
Shadow.zip (121 KB)

from christinepnewman


guykawasaki says...

http://www.guardian.co.uk/books/gallery/2008/nov/20/charles-darwin-origin-species?picture=339796447


wakiapps says...

WaKi SNAP! is our first iPhone and iPod Touch game based on the classic card game "snap".
Check it out at http://snipurl.com/5j1mb and let us know what you think!

       
Click here to download:
WaKi_SNAP_just_released_on_iTu.zip (199 KB)

Filed under: 2 player, card game, cards, children, game, iPhone, iPod Touch, parents, Snap, WaKi, WaKi SNAP

wakiapps says...

http://www.macworld.com/article/136896/2008/11/iphonegameroundup.html
 
http://www.pcworld.com/article/154106/.html


kate says...

I love this!


Theseus says...

100 Awesome Ivy League Video Lectures

By Christina Laun

Even if you can't attend an Ivy League college, you can still take advantage of the intellectual and professional resources that many have to offer through the colleges' websites. Here, we've put together a list of 100 great video lectures you can watch to learn from some of the leading experts in fields as diverse as astronomy and economics.

Science

Check out these video lectures and courses to learn about biology, astronomy, physics and more.

  1. ASTR 160 - Frontiers and Controversies in Astrophysics: Professor Charles Bailyn teaches this course in astrophysics that focuses on black holes, dark energy and extra-solar planets. [Open Yale]
  2. PHYS 200 - Fundamentals of Physics: Those who have a good background in math and physics can get a great review from this course offered by Professor Ramamurti Shankar. [Open Yale]
  3. Jane Goodall: Reason for Hope in a Complex World: Known for her work with chimpanzees, Jane Goodall is a leading authority on primatology and anthropology, and in this lecture she speaks on issues related to finding hope for our future. [Harvard @ Home]
  4. String Theory, Black Holes, and the Laws of Nature: String theory provides promise in unraveling the mysteries that surround the laws that govern the universe and Professor Andrew Strominger discusses his insights into this theory and its relationship to black holes in this lecture. [Harvard @ Home]
  5. Changing Habitats… Vanishing Species: Check out the video of this symposium at the Harvard Museum of Natural History that brings together a collection of scholars to discuss environmental changes, species loss and human impact. [Harvard @ Home]
  6. Socks Before Shoes: Unraveling Cell Division: Professor of molecular and cellular biology at Harvard, Andrew Murray, explains the process of cell division in this video lecture and offers some insights into what might cause abnormalities. [Harvard @ Home]
  7. A COMPLETE Search for New Suns: The COMPLETE project aims to map 1,000s of light years of star forming material in the Milky Way and you can learn all about it from Alyssa A. Goodman, Professor of Astronomy at Harvard in this lecture. [Harvard @ Home]
  8. Evolutionary Dynamics: Recent advances in our understanding of evolutionary dynamics are discussed by Professor Martin Nowak in this course with regard to genes, behavior and much more. [Harvard @ Home]
  9. Science in the News: Stem Cells and Cloning: Join Harvard medical students as they explore some of the moral and ethical issues that surround the use of stem cells in this lecture. [Harvard @ Home]
  10. Unlocking the Promise of Stem Cells: Harvard's newly opened Stem Cell Institute is introduced in this video lecture, providing information on how the institute plans to move research on stem cells from the lab to the clinic. [Harvard @ Home]
  11. Observing the Birth of the Universe: Lyman Page, Professor of Physics, delivers this video lecture on the origins of our universe, using humorous and accessible means to explain complex concepts. [Princeton]
  12. Sequencing the Human Genome: Want to learn more about the process of sequencing our genome from start to finish? This lecture from Craig Venter can help you to become more informed on the subject whether you're interested for fun or scholarly exploration. [Princeton]
  13. Einstein's Biggest Blunder: A Cosmic Mystery Story: Alex Filippenko from the University of California, Berkeley delivers this lecture on one of the best-known thinkers and theorists of the 20th century. [Princeton]

Health and Medical

Here you can learn about cutting-edge innovations in the health and medical fields.

  1. Living Healthier, Living Longer: Part I: This multi-part series on health begins with this lecture on the latest research in aging and men's and women's health issues. [Harvard @ Home]
  2. Living Healthier, Living Longer: Part II: Part two of this lecture series addresses current research in cancer, nutrition, exercise and stress management. [Harvard @ Home]
  3. Living Healthier, Living Longer: Part III: Check out this lecture for information on memory, sleep and alternative medicine. [Harvard @ Home]
  4. Reproductive Health in the 21st Century: Radcliffe Institute for Advanced Study has provided this lecture which addresses the social, ethical and scientific elements of issues in reproductive health. [Harvard @ Home]
  5. Genetically Modified Foods: Worried about eating foods that have been genetically modified? This lecture offers you the chance to listen in on Harvard students discussing the myriad of ethical, health and historical issues involving altered foods. [Harvard @ Home]
  6. Global Health: A Panel Discussion: This panel includes representatives from the government, the pharmaceutical industry, and educational and medical institutions to discuss global health issues like AIDS. [Harvard @ Home]
  7. Reforming Our Health System: Why Neither Candidate Has the Answer: Get a different perspective on the issue of health care in America from this lecture offered by Marcia Angell. [Princeton]
  8. Human Systems Explorer: Technology and healthcare meet in the development of the Human Systems Explorer. Listen to Dr. Michael Parker explains how it works in this online lecture. [Harvard @ Home]
  9. Watch What You Eat: Ruth Reichl from Gourmet Magazine delivers this lecture on the realities of food consumption, especially in relation to eating meat and the commodification of animals. [Princeton]

History

Improve your knowledge of American, world and ancient history with these informative video lectures.

  1. CLCV 205 - Introduction to Ancient Greek History: This course traces the development of Greek culture in regard to politics, the arts and philosophy from the Bronze Age to the late classical period. [Open Yale]
  2. HIST 119 - The Civil War and Reconstruction Era, 1845-1877: Learn about this tumultuous period in American history from Professor David Blight in this course that explores the causes and consequences of the Civil War. [Open Yale]
  3. HIST 276 - France Since 1871: Francophiles can indulge in these free video lectures that cover social, political and economic changes in France from 1871 into the modern age. [Open Yale]
  4. Women and War in the Twentieth Century: Learn from top scholars about how women have played a role in the wars of the 20th century from guardians of the home to front line terrorists. [Harvard @ Home]
  5. Brown v. Board: Looking Back, Looking Forward: Brown vs. the Board of Education was a historic case and this video lecture provides an insightful retrospective using a panel of several of the attorneys on the case as well as a discussion of desegregation and civil rights. [Harvard @ Home]
  6. Benjamin Franklin: Scientist, Diplomat: Professor Dudley Herschbach discusses the inventions of Ben Franklin like the lightening rod in this lecture. [Harvard @ Home]
  7. Oliver Cromwell: Commoner to Lord Protector: Oliver Cromwell played a big role in 17th century English politics and this lecture offers background on his rise to power as a military and political leader. [Harvard @ Home]
  8. Interpreting the Past with Professor Laurel Ulrich: Check out this lecture to learn about revolutionary ideas in America and how it has affected everyday life. [Harvard @ Home]
  9. Keynote Address: Lincoln and Douglas: The Debates that Defined America: Part of the James Madison Program in American Ideals and Institutions, this lecture explores one of the most historic debates that has ever taken place in American history. [Princeton]
  10. America's First Cause: Harvey C. Mansfield delivers this lecture on the writings of Alexis de Tocqueville, focusing on his work Democracy in America. [Princeton]
  11. How Obscenity Became the Litmus Test for the First Amendment: Fans of the First Amendment, the one regarding freedom of speech, will find this lecture by Rochelle Gurstein to be of particular interest. [Princeton]
  12. Baptized in Blood: Moral Reflections on the American Civil War: Harry S. Stout, Professor of American Religious History at Yale University, explores some of the ramifications the American Civil War in regards to the religious legacy and just conduct during the battles. [Princeton]

Political Science

Whether it's the history of politics or present-day issues you're interested in, you'll find interesting material in these lectures.

  1. State of the Global Environment: Public Policy: Four Harvard professors discuss the role of scientists, artists and economists in global climate change in this video lecture. [Harvard @ Home]
  2. Teaching American Politics: Being objective when teaching highly charged issues like politics can be hard, but this lecture gives some insights into ways you can deliver the material without a clear bias. [Harvard @ Home]
  3. Women Without Money: Watch this video lecture for discussions on welfare reform, surrogacy, the global sex trade and more. [Harvard @ Home]
  4. International Relations: New Approaches in a Complex World: Our world has gotten ever smaller with advances in technology, communication and travel. This lecture addresses the issues that have developed from the rise of China as an economic power. [Harvard @ Home]
  5. A World in Conflict: Panel Discussion: In this discussion, you'll hear opinions on September 11th in regard to dealing with legal prosecution, global strategic policy, ethics and war. [Harvard @ Home]
  6. Perspectives on China: Reform and Sovereignty: Professor MacFarquhar delivers this lecture on the key elements of the politics, economics, history and future of China. [Harvard @ Home]
  7. Border Connections: Mexico/U.S. Relations: Relations with Mexico are a hot-button issue, especially in regard to immigration. Dr. Jorge Castañeda addresses the changing relationship between the Mexico, the US and South American in this lecture. [Harvard @ Home]
  8. A New American Empire?: Should the U.S. be able to regulate relations within other countries? Professor Rosen discusses the implications of this use of power in this video lecture from Harvard. [Harvard @ Home]
  9. The Free Man and Free Government in Political Theory: Ellis Sandoz explores some of the basics of political theory in this focused lecture. [Princeton]
  10. Compassionate Conservatism: Whether you agree with conservatives or not, this lecture will allow you to learn more about what makes the movement popular with so many people. [Princeton]

Engineering, Technology and Mathematics

From satellite security to cubic equations, these videos are helpful for those interested in a variety of fields.

  1. BENG 100 - Frontiers of Biomedical Engineering: Learn the basics of biomedical engineering from Yale professor W. Mark Saltzman. It presents material in a way both those with a science background and those without can understand. [Open Yale]
  2. The Fluid World: Flows, Films and Foams: Check out this lecture for a crash course in fluid dynamics from Howard Stone, Professor of Chemical Engineering and Applied Mechanics. [Harvard @ Home]
  3. Hyper-Encryption by Virtual Satellite: This lecture addresses the failure of computer systems to provide network security and offers a solution in hyper-encryption. [Harvard @ Home]
  4. Curtis McMullen: The Geometry of 3-Manifolds: An issue long a mystery in mathematics may finally have been solved by a Russian mathematician as this lecture discusses. [Harvard @ Home]
  5. Solving Cubic Equations: Cubic equations may not be anything new but this lecture takes a modern approach to addressing them. [Harvard @ Home]
  6. Bipedal bugs, galloping ghosts and gripping geckos: BioInspiration for Rapid Running Robots: Lovers of sci-fi and robotics will appreciate this lecture that provides some interesting information on the origins for plans of the most modern robotic designs. [Princeton]
  7. Anytime, Anywhere: The Recent Revolution in Wireless Communications: With wi-fi all the rage, it can be tempting to simply take the phenomenon for granted. This lecture explains some of the details behind the emergence of this revolution in communication. [Princeton]
  8. Perspectives on High Performance Computer Architecture: History and Challenges: Learn about the history and development of computer architecture and internal systems in this techie-lecture. [Princeton]
  9. Rip, Mix, Burn, Sue: Technology, Politics, and the Fight to Control Digital Media: Like most people, you've probably used your computer to burn a CD before. This lecture explores some of the legal issues that surround the use of digital media. [Princeton]
  10. Escher and the Droste Effect: Hendrik Lenstra, Professor of Mathematics, gives this lecture on the Droste effect, or the appearance of ever smaller pictures within a larger picture, giving a sense of infinite recession of space. [Princeton]
  11. Matchsticks, Scramjets, and Black Holes: Numerical Simulation Faces Reality: Learn how the numbers translate to reality in this lecture from Elaine Oran, Senior Scientist for Reactive Flow Physics at the U.S. Naval Research Laboratory. [Princeton]

Finances

These lectures cover topics in economics and business to help you stay informed.

  1. ECON 159 - Game Theory: This video course teachers the basics of game theory like dominance, backward induction, Nash equilibrium, evolutionary stability, commitment and much more. [Open Yale]
  2. ECON 252 - Financial Markets: Check out this economics course from Professor Robert Schiller which aims to explain financial theory in relation to banking, insurance, securities, futures institutions and where these may be headed in the coming years. [Open Yale]
  3. Understanding the Crisis in the Markets: A Panel of Harvard Experts: Get some insights into the factors affecting the market crisis affecting the world economy from leading experts in the fields of economics and finance in this online lecture. [Harvard @ Home]
  4. The Business of Baseball: Whether you're just interested in sports business or have a true love of the game, this lecture will give you some insight into the business workings behind baseball using the Boston Red Sox as an example. [Harvard @ Home]
  5. Entrepreneurial Women: Pamela Thomas-Graham, President and CEO at CNBC, delivers a lecture that reflects on some of the issues women face in the business world. [Harvard @ Home]
  6. Amazon.com: Customer Experience Matters: Learn from experience as Jeffrey Bezos delivers this lecture on business practices at his alma mater, Princeton. [Princeton]
  7. Beyond Freakonomics: New Musings on the Economics of Everyday Life: Well-known author and professor at the University of Chicago, Steven Levitt, offers his insights on economics in this video lecture. [Princeton]
  8. The Economics of Climate Change: Risk, Ethics, and a Global Deal: Climate change isn't just a big deal for the environment, it impacts economics as well as this lecture discusses. [Princeton]
  9. Philanthropy…It's Definitely Not for Wimps: Reflections on Faith and Finance: Gain some insight into how religious philanthropy functions from this video lecture. [Princeton]

Social Sciences

These video lectures allow you to learn a little more about the inner workings of human society and the mind.

  1. PSYC 110 - Introduction to Psychology: Get a better understanding of how your (or others') minds work with this intro course from Professor Paul Bloom. You'll cover topics like child development, communication, learning and much more. [Open Yale]
  2. Women, Men, and Food: Putting Gender on the Table: This lecture explores the relationship between gender and food at all stages of production. [Harvard @ Home]
  3. The City of Sardis: Approaches in Graphic Recording: For a thousand years the city of Sardis was a thriving metropolis forming a bond between Asia and Europe. This lecture explores how representations of this city have changed over time with special attention to archaeology from the site. [Harvard @ Home]
  4. In the War Zone: How Does Gender Matter?: In Western society, war has been a traditionally male occupation. This lecture explores how defines gender roles, drawing on scholars from all over the world for insight. [Harvard @ Home]
  5. Gender and Race: Together at Last?: Both people of racial minorities and women have experienced much discrimination over the centuries. This lecture explores how issues of race and gender have influenced the study of women's history in the U.S. [Harvard @ Home]
  6. Women and Economic Development: With special focus on the Self-Employed Women's Association in India, this lecture illuminates women entrepreneurs' challenges and successes, past and present. [Harvard @ Home]
  7. On the Relation of Science and the Humanities: While often a clear line is drawn between the humanities and the hard sciences, this lecture explores how each relies on the other and are essentially interwoven. [Harvard @ Home]

Literature

Learn more about your favorite authors from these free video lectures.

  1. ENGL 220 - Milton: Check out this course to learn about poet Milton, his contemporaries, poems and lasting influence on the field of poetry.[Open Yale]
  2. ENGL 291 - The American Novel Since 1945: This series of video lectures will take you through a collection of American novels and will cover topics like the relationship between readers and authors and the place of the novel in history. [Open Yale]
  3. ENGL 310 - Modern Poetry: If you feel you don't know much about modern poetry, give these video lectures a chance. You'll get help understanding poets like Yeats, Pound and Eliot. [Open Yale]
  4. Fifty Years in Media: Changes in Journalism: The face of the popular media has changed a lot in the last 50 years due to technology and societal advancements. Listen as journalists from Harvard's class of '55 talk about their first-hand experience dealing with these changes. [Harvard @ Home]
  5. W.B. Yeats: Among School Children: Professor Helen Vendler gives this lecture, complete with analysis, on the Yeats poem "Among School Children."[Harvard @ Home]
  6. Rediscovering Homer: Poetry and Performance: Learn more about the Iliad in this lecture series from Professor Greg Nagy. [Harvard @ Home]
  7. Onetti and the Shadows of Faulkner and Borges: Those unfamiliar with Urayguan author Juan Carlos Onetti can learn more about his work and it's place in literature from this lecture. [Princeton]
  8. Moby-Dick: Polyphony: Learn how Biblical references and imagery are used in popular literature of the 20th century, namely Moby Dick, in this lecture. [Princeton]
  9. Absalom, Absalom!: Lexicon: Robert Alter explores ideas of the Bible and American literature in this video lecture, part of a larger series. [Princeton]
  10. Words and Rules: The Ingredients of Language: Steven Pinker from MIT delivers this lecture at Princeton on the elemental components of our language and languages worldwide. [Princeton]
  11. Jane Austen and War: Learn how Jane Austen was influenced by war in this lecture from Professor Claudia Johnson. [Princeton]

The Arts

Check out these videos for information on the arts including painting, music and film.

  1. Manet and Cézanne: The 'Heroics' of Modernism: Gain a little insight into modern art history in this lecture from academic Carol Armstrong. [Princeton]
  2. Create Dangerously - The Immigrant Artist at Work: This videotaped lecture is delivered by Edwidge Danticat, award-winning writer, and explores the role of Haitian artists. [Princeton]
  3. Blue Notes and Butterflies: Black Women's Vocality: Columbia University professor Farah Jasmine Griffin wrote a book on Billie Holliday and explores some of the issues from her book regarding black women vocalists in this lecture. [Harvard @ Home]
  4. Bach Manuscripts: Recovery of the Hidden Archive: What would you do if you found over half a million records thought to have been lost of composer Bach? This professor explores just that, a find of a lifetime, in this lecture. [Harvard @ Home]
  5. A Conversation with Mira Nair: Filmmaker Mira Nair, known for such movies as Monsoon Wedding, recounts her creative journey in this video. [Harvard @ Home]
  6. Beethoven's Ninth Symphony: Then and Now: Music aficionados can take in this lecture for free and learn about how the Ninth Symphony has remained important throughout the years. [Harvard @ Home]
  7. Do Movies have a Future?: David Denby, from the New Yorker, gives this lecture on his projections for the future of the film industry. [Princeton]

Philosophy and Religion

Gain insights into spirituality and the workings of the human mind in these video lectures.

  1. PHIL 176 - Death: Everyone has questions about their own mortality. This course aims to address some of the philosophical issues related to death and dying. [Open Yale]
  2. PLSC 114 - Introduction to Political Philosophy: In this video lecture series, you'll examine some of the major texts and thinkers who have influenced political theory and practice in Western tradition. [Open Yale]
  3. RLST 145 - Introduction to the Old Testament (Hebrew Bible): The Old Testament played an important role both in the thought of ancient Israel and on much later Western civilization. This course explores in detail the affects of the Bible, especially in relation to the Near East. [Open Yale]
  4. Justice: A Journey in Moral Reasoning: Renowned professor Michael Sandel explores issue of political philosophy in this lecture and film that takes you inside a Harvard classroom to discuss issues of ethics and justice. [Harvard @ Home]
  5. Manifestations of Shiva: If you've ever wanted to learn more about Hinduism, this lecture is a great place to start. You'll learn about the mythology, imagery and pilgrimage sites that are associated with the god Shiva. [Harvard @ Home]
  6. Islam and America: Islamic Scholars Respond: This series of lectures provides a background on the tenets and history of Islam, the relationship of Islamic nations with the West, and the long-term implications of 9/11. [Harvard @ Home]
  7. His Holiness the Dalai Lama Visits Harvard: Whether you're a Buddhist yourself or just have great respect for the Dalai Lama, you can listen to his speech delivered at Harvard in 2003 to a full house of students, professors and staff. [Harvard @ Home]
  8. God and the Inner City: This documentary explores the battle for the souls of people in the inner city and focuses on several faith-based groups trying to help those who need it most in troubled areas in America. [Princeton]
  9. The Rise and Fall of Italian Jewry From 1839-1939 and the Revival of Italian Judaism in Italy and Israel: Dan Vittorio Segre, an Italian professor, delivers this lecture on the history of Judaism in Italy from the 19th century until the horrors of the Holocaust and then into the post-war period. [Princeton]
  10. God, Blood, and the Temple: Part one of a multi-part series on sin, Paula Fredriksen discusses some of the many aspects of sin in this lecture. [Princeton]
  11. God, Nature, or Man: Whose Law for a Free People? The Experience of Islam: If you're interested in learning a little more about Islam, watch this video lecture from Princeton that explores law in islamic faith and nations. [Princeton]


irie1972 says...

mikeash.com: The iPhone Development Story

I just got my first application in the iTunes App Store, and I wanted to tell the story of what it's like to publish one, from start to finish. The app, NetAwake, is an independent project I wrote with my friend Joshua. It makes an interesting story, I think, because unlike the sordid tale of some people's struggle to get accepted into the iPhone developer program, my personal experience was perfectly normal. (As far as I know.)

But even a perfectly normal experience with the iPhone developer program is intensely weird. Compared to the simplicity of developing and distributing a Mac app, Apple's iPhone program is extremely convoluted and strange. Here's the story, step by step.

1. Sign up with the iPhone Dev Center
The iPhone Dev Center is Apple's portal page for iPhone development. Here, you can download the SDK and find tutorial videos and documentation. For reasons unknown to me, merely having an account with the Apple Developer Connection does not suffice. I have to sign up again for the iPhone site. This is pretty straightforward, however: just click through some scary legal forms and off you go. Now I can download the SDK and get started.

2. Enroll in the iPhone Developer Program
I'm not done signing up with stuff yet! You see, although I signed up and clicked through the scary legal stuff and downloaded the SDK, I can't actually install any software on my iPhone. I can read documentation, write code, compile it, and even run it in the iPhone simulator, but I can't get it onto my actual iPhone.

(And don't think that the simulator makes for an adequate development platform. There's a reason it's called a "simulator" and not an "emulator". Running on the real hardware ends up being pretty different.)

For this privilege, Apple makes me sign up for the developer program. I get to fill out some more forms, click through some more scary legal stuff, and send off my request.

Request? That's right, I don't get an answer immediately. Instead I get to....

3. Wait
This step is going to come up again. I believe that this time the answer came the next business day.

4. Pay
Did I mention that the program is not free? And remember, this isn't to distribute apps, it's just to start realistically working on them. $99 to put apps on my own iPhone. (Or as it happens, on my own iPod Touch.) But I pay my money and shortly afterwards I receive an activation code.

Now I'm ready to put software on my iPhone! Well, not quite.

5. Provision
A stock iPhone won't take any software that hasn't been signed by Apple. This puts us third-party guys in a bind, because we can't get Apple to sign every single build we make. So what Apple does is allow you to create a provisioning profile. This is a cryptographic blob which essentially tells your iPhone to accept apps signed by you and not just Apple. To create it, we have to get the iPhone's unique identifier (accessible through Xcode) and then paste it into Apple's web form, then download the result from Apple. Very oddly, although I am enrolled as an individual developer, I still have to make a request and then manually approve my own request before the provisioning profile can be generated.

I download the profile, install it using Xcode, and now I'm ready to put software on my iPhone!

And if you believe that, you haven't been paying attention.

6. Certificate
I said that the provisioning profile tells the iPhone to accept software signed by you. Well, you also need a certificate to sign with. And of course this can't be any old certificate, but a special one made by Apple. The process here is fairly involved. You get to open Keychain Access, go to a little-used corner, generate a certificate request, open the result in a text editor, copy/paste the blob of random characters into Apple's web form, and then submit it. Then you get to download and install the result (after placing a request, and then approving that same request) as well as an intermediate certificate provided by Apple. And if you're like me, you also get to scratch your head over a bunch of really bizarre errors until you have a sudden flash of inspiration and run Keychain First Aid to fix corruption.

But now it's all done! My iPhone (iPod Touch) is provisioned, I have my certificate, I have the intermediate certificate, and I am now finally ready to put software on it.

Come on, you know better than that by now.

7. Screw about in Xcode
Of course none of this goes quite right. There are a bunch of settings in Xcode that have to perfectly match the stuff that you gave to Apple, and they don't start out matching. The errors are essentially worthless. I believe I only ever saw Xcode generate one error, over and over and over again, as it encountered a whole bunch of different problems.

But by careful log reading, insight, pure random luck, and internet searches, I finally arrive at a working system. I build in Xcode, and the application appears on my iPhone (iPod Touch). Yes, really. I'm not kidding this time. It actually worked, at last.

8. Develop!
This is what I'm here for, after all. Now that all the pieces are finally in place, I can get down to writing code. (Yes, I could write code before. But I couldn't run it on the hardware that it was targeting, which made it somewhat less useful that it otherwise could be.)

As everybody knows, developing for the iPhone is a lot like developing for the Mac. Instead of Cocoa, you have Cocoa touch, which is very similar. There are significant differences as well, though, so it takes some getting used to.

In addition to the perfectly natural difficulties encountered from working on a new platform, there's also a big artificial difficulty. As any experienced developer knows, a great deal of help can be had from simply talking to other developers working on the same system. But Apple doesn't let us do that! If you'll recall, I mentioned a bunch of scary legal stuff that you had to click through to sign up with the program. Among all the other stuff, it included the &*%#ing NDA (WARNING: link contains extremely large curse words) which says that we can't talk about this stuff, with anyone, ever.

And it's not just boilerplate. If you read between the lines a bit on Apple's cocoa-dev info page, they pretty much come right out and threaten to sue anyone who violates their NDA on the mailing list.

It's not just code that takes the hit. Xcode took a lot of magic incantations to work as well. It would have been a lot easier if I had been able to (legally) talk with my fellow developers about it.

9. Ship
At last, the product is complete, and it's ready to be given to the customers. Well, not quite. This being the iPhone, Apple has a lot more hoops for me to jump through first! I had thought that all the craziness with certificates was behind me. I should have known better.

10. Certificate
For reasons entirely unknown to me, a build that is intended for distribution through the iTunes App Store needs to be built with a special distribution certificate. I don't understand why Apple can't just sign the build with their own special certificate. But apparently that's not good enough. So I go through the whole process all over again. Keychain Access, request, approve my own request, download, install.

Now I'm ready to ship.

I realize you're probably getting tired of this game, so I'll stop. Next time I say that I'm ready to ship, I'll mean it. Because of course, I'm not ready yet!

11. Provision
I forgot to mention that you need a special distribution provisioning profile too. I don't really understand why. You can't even install the built-for-distribution app on the iPhone. But there you have it.

12. Screw about in Xcode
You may recognize this from step 7. It's the same basic thing, but with a new twist. There are literally pages of instructions (admittedly, largely due to having a bunch of screenshots) detailing how to reconfigure the Xcode project to use this special magic distribution certificate instead of the development certificate I had before. The first time I went through these pages of instructions, I apparently missed something because when I built I got The Error instead of having things work. When I went back and redid the instructions from the top, suddenly it worked!

13. Submit
This involves filling out a pretty standard web form. First they ask a bunch of basic information about the app, such as its name, its version number, a description, and whether it includes cryptography. (Apps which include cryptography need a special license to be sold outside the United States. As if the US had some sort of monopoly on cryptography! And yes, this foolishness is due to Uncle Sam, not Apple.)

Next I get to a screen where I can upload the application, a large size icon, and screenshots. I click and upload the application. Then I do the icon. For some reason, Apple does not accept PNG files for either the icon or the screenshots, even though that's what their screenshot tools generate (on both platforms) and Mac OS X has had support for it since day one. They do support TIFF and JPEG. Alas, I don't notice this prohibition at first, and I upload a PNG version of my large icon. Somewhere in this process, something chokes, and I'm shown a cryptic error screen.

I press the back button, and I'm informed that my session has timed out. I go back to the main page, log in again, and go to the applications area. Nothing is listed. All of my previous work has been lost, and I have to re-enter everything a second time.

Fantastic.

I go through it all a second time, this time noticing and respecting the TIFF/JPEG requirements, and I make it through successfully. I set a price for the program, and now, at last, finally, it is ready to be purchased.

Just kidding! I'm sorry. I know I said I wouldn't do this anymore. But I couldn't resist.

14. Wait
The app sits in the list with this nice yellow gumdrop and a tag reading "In Review". There is no indication of progress, no ETA, no indication that anything is being done. I assume that something is, but I have to take this completely on faith.

This is when I started writing this post. While researching it, I went back and went through some of the motions that I had to do earlier on, so I could remember what they looked like. While I was doing this, I managed to hit all the right buttons to sign up with the iPhone Developer Program. Not one to let sanity stand in their way, Apple happily accepted my submission a second time. And so my account was thrown back in time, from being enrolled to once again waiting for acceptance.

I quickly sent off an e-mail to Apple requesting help, and then sat down for some low level panic. Fortunately, my status was changed back to being accepted within a couple of hours. Apple finally replied to my frantic request for help last week, about three weeks after I sent it. You'd think that with the NDA in place preventing us from helping each other, the least Apple could do would be to answer their e-mails in a timely fashion.

15. Get Rejected
About a week later, I get an e-mail from Apple. Wouldn't you know it, Apple can't make the thing work, so they reject the application. This e-mail is actually pretty decent, with the majority of it obviously written by an actual human about my particular case. When I write back to ask if they had run through NetAwake's troubleshooting guide, they reply within just a few hours to say that they had and it didn't help. Good on them for being so responsive!

Of course this puts my partner and me in a tough situation. The program works fine on our networks, but not on Apple's. And while Apple was nice about responding to my query, it's obvious that I can't get them to bust out a network sniffer and tell me about their router configuration.

After a great deal of thought we come up with a couple of things that might help it work on Apple's network, apply the fixes, and are ready to try them out on Apple.

16. Screw about in Xcode
This time it doesn't take nearly as long, but Xcode still has to put up some token resistance. There are two code-signing files that are supposed to be embedded in the application, and only one shows up in my initial build. After some clean building and a great deal of cussing, suddenly both of them show up, and I'm good to go.

17. Resubmit
Fortunately Apple provides a streamlined process for submitting a new build of a rejected application. A special link appears in the application's information on the submission site, and uploading the new application is just a couple of clicks away.

18. Wait
Of course once you're rejected you go to the back of the line, and I get to wait another week to see if the fixes did the trick or not.

19. Get Rejected Again
A week after resubmitting (nearly three weeks after the original submission), another e-mail from Apple arrives. This time they've found a legitimate bug in the application, and have rejected it because of that. This is perfectly understandable, and is actually a very good service they provide. But it is extremely annoying to have to wait a week to discover that they've found a bug, and then wait another week to see if the fix works for them.

(Note, I'm not saying that the first rejection wasn't a bug. Maybe it was, maybe it wasn't. I don't really have enough information to say one way or the other. This one definitely was, though.)

20. Re-Resubmit
My partner makes the fix, I submit again, and the waiting game begins. This is somewhat nail-biting by now, because not only is it possible that our bug fix didn't quite work and we've just wasted another week (although unlikely), but because of this bug we still don't know whether our fix for the original rejection worked.

21. Wait Again
Of course it takes Apple another week to check our new submission. As explained, much nail biting ensues.

22. Accepted!
Finally, nearly a month after the original submission, the application is accepted by Apple and appears in the store. It spent longer going through Apple's approval process than it did in development! And while Apple did find a legitimate bug, spending a month in limbo for a single bug is a very poor tradeoff.

Conclusion
Development for iPhone is an incredibly difficult process, much more difficult than it needs to be. The arduous process of shipping an application for the Mac suddenly appears to be absolutely straightforward after going through this mess. I really don't envy those companies who have staked their success to the iPhone platform. The amount of arbitrary hassle, uncertainty, and delay in the process can only feel vastly worse when your livelihood depends on it.


ijustine says...