Wednesday, June 29, 2011

Hitting the Apple Wall

After months of work on my iPhone application, which I was sure to make thousands of dollars on, I hit a wall. The "Apple Wall". I've heard from many Droid lovers and PC lovers about Apple's restrictions and how frustrating these can be for programmers and users alike. Well I finally found out the hard way. My genius app idea that I was so passionate about proves to be nearly impossible. Apple won't let an application send out text messages programmatically. I'm not going to get into the details of my idea, but it basically requires the ability to send out many text messages programmatically. Apple forces you to use their text messaging application if you would like to send a text within your app. You can pre-populate the text message with a recipient and a message, but the user must still hit send. This requirement basically killed my idea.

I'm not giving up on getting an app in the app store, but I'm going to start small this time. A few friends of mine started a nonprofit called Save the Mermaids (www.savethemermaids.net). They are a group of girls dedicated to ocean conservation. The girls give talks to elementary schools, work with city councils and politicians, organize beach cleanups around the world, and spread awareness to the detrimental effects that pollution and single-use plastics have on our ocean. I decided to make a basic iPhone app for them. I'll be working with a graphic designer, who happens to be one of my best friends, Drew Rueda. Together we will create a very simple, informative and beautiful iPhone application.

Sunday, December 19, 2010

Testing

My iPhone programming class finally came to an end last week. Unfortunately, I did not finish my application completely but I got enough of it working to present the basics in class. Now I've reached the point where I'm getting close to completion. I wanted to start testing my app on my iPhone so I had to first shell out $99 to become a registered Apple Developer. After that there is certification process you must go through before you can install and test applications on your device. I was thinking of creating a tutorial, but I found a really good one here: http://mobiforge.com/developing/story/deploying-iphone-apps-real-devices. Now I've got my app on my iPhone and hopefully it will be in the app store soon!

Sunday, November 14, 2010

iPhone 4 Upgrade

After the new iOS was released, my iPhone 3 started lagging. It was running so slow that I would have to wait 5-10 seconds to load the text messaging application. I dealt with this frustration for many weeks until finally the silence switch stopped working. Whenever I would flip the switch to silent mode on my iPhone 3G it would start freaking out in my pocket. The slightest bump and the phone would start vibrating as if I was rapidly flipping the switch off and on. I finally decided it was time to succumb and purchase the new iPhone 4.

I did some research to find out if there were any specials, but couldn't find much. The only thing apple or AT&T seemed to be doing to encourage an upgrade was allow an early upgrade. Usually you have to wait about 2 years to upgrade but for the iPhone 4 I believe you could upgrade if it has been 18 months. I continued researching to see what I could get for my old iPhone 3G. Seeing as it had some scratches on the case, some smudges on the display, and a broken silencer switch, I didn't think I could get much money selling it on eBay. That is when I found out about some trade in programs!

Trade-In Programs
RadioShack, WalMart, and BestBuy seem to all have some sort of trade in program. There are no WalMarts in Santa Barbara so first I went to BestBuy to see what they had to offer. The trade-in program there was with a third party which requires you to fill out some stuff online and then send your phone in and wait. The employees didn't seem to know much about this program and I quickly lost interest. Next I tried RadioShack.

I've never really had a reason to go to RadioShack but my experience there changed my opinion of the company. The trade-in program they have allows you to hand over your old iPhone 3G or 3GS and immediately receive a gift card which you could then use toward a new iPhone 4. The manager of the store was very helpful and friendly. Although my phone had some wear and tear, he gave me the redemption value as if my phone were in excellent condition. There was also some issue with AT&T when they tried to upgrade my phone which caused me to have to wait for nearly an hour. Because of this they gave me some free screen protectors and the redemption value as if my phone was actually a 3GS instead of just a 3G. I ended up getting about $160 towards a new iPhone 4 that cost $200 (about $240 after taxes). Needless to stay I was pretty stoked when I only had to pay about $80 for a brand new iPhone 4. My circumstances were a bit extraordinary, but the redemption value is pretty good for most of the trade-ins. You can get an idea of how much you will get for your cell phone before you go by checking out RadioShack's trade-in site. Click here to check it out. This works for nearly all cell phones from the past couple years.

I love my new iPhone 4 and I'm excited to start testing some of my applications on it.

Thursday, October 7, 2010

Hello World - Basic App Tutorial with a Label

Once you have Xcode installed, you are ready to start making iPhone applications! Get excited, you are about to make your very first iPhone app. It is so easy too!

Open Xcode, and click on File -> New Project











Next, select Application under iOS on the left panel if it is not already selected. As you can see, Xcode can be used to program applications for Macs as well.


Once you have selected iOS Application, you will see a variety of application templates to choose from. For now we will focus on the basic View-based Application.

Select View-based Application and make sure the Product selected says iPhone.

Click Choose...

Type in the name of the Application, I suggest HelloWorld. Choose a location and click Save.


A new screen appears and there is a lot going on here.




















You will see on the left hand side Groups & Files. In this section, expand all of the folders to reveal the files associated with this project. I will discuss what these files do in detail later, but as for now, lets get our basic app running.


















Double click on HelloWorldViewController.xib (or this will be 'YourProjectName'ViewController.xib if you named the Project something else). Interface Builder opens!


There are a lot of things going on in Interface Builder. Luckily, many of the functions are intuitive. Interface builder offers easy-to-use drag-and-drop features that make designing the layout of an app simple. In the Library window, which can be seen on the left side of the screen shot, scroll down to find a Label. Click and drag the Label over to the gray window titled View.

Good job, you have now created your first Label! Lets change the title by double clicking on the Label you just added to the View. Change it to Hello World.
Now go up to File -> Save to save the Label you have just added. A shortcut for this is pressing the Apple/Command key and the S key (+S). Now switch screens back to Xcode. A shortcut for this is Apple/Command key and tab (+tab).
Now click on Build and Run at the top center of the Xcode window. The iPhone simulator should now pop up.
Congratulations! You just created your first iPhone application. Pretty easy right? The beauty of Interface Builder and Xcode is how they work together to easily create common application functionality. In this beginner app we didn't even have to write any code! Sure it doesn't do much but we are off to a great start.

A side note to those with little or no programming experience: Hello World is usually the title of the first program any developer creates. This is generally a very basic program that usually does nothing but display the text "Hello World". Many programmers start with this because it shows the very basics of running a program in a given language, environment, or system. Also it is believed to be bad luck if your first program does not say Hello World. Programming is tricky enough as it is, so the last thing you want is bad luck holding you back. Good job on your first app, soon I will explain some more features so that you can make one that is actually useful.

Tuesday, September 21, 2010

Installing New RAM and Upgrading the Operating System

The 4 GB of new RAM arrived! I installed it within a few minutes and made this video in case you would like to know how to upgrade your RAM in an older MacBook (2,1).



After I installed the RAM, I cleared up some space on my hard drive and installed Snow Leopard. It was $29 at the apple store, not too bad for an Operating System upgrade. After that I installed Xcode 3. This is not the latest version of Xcode. Xcode 4 is still in Beta and my professor is teaching to Xcode 3 so I'm sticking with that for now. This install came with the latest iOS SDK which allows iPhone application development. 'iOS' is the new name for the Operating System that runs on iPhones, iPod Touches, and iPads.
 
I finally have my environment set up, time to start programming!

Friday, September 10, 2010

Memory Upgrade

So my 512 MB of RAM is not going to cut it. Thanks to some advice from my uncle, I found a website with cheap and reliable RAM for sale. First, here are a few details about my laptop:
  •   Model Name: MacBook
  •   Model Identifier: MacBook2,1
  •   Processor Name: Intel Core 2 Duo
  •   Processor Speed: 1.83 GHz
  •   Number Of Processors: 1
  •   Total Number Of Cores: 2
  •   L2 Cache: 2 MB
  •   Memory: 512 MB
  •   Bus Speed: 667 MHz

And here are the details on the RAM I purchased:
4.0GB (2GB + 2GB Module Set) Upgrade kit for Apple MacBook, MacBook Pro, iMac, Mac Mini 2.0GHz, 2.1GHz, 2.2GHz, 2.4GHz, 2.5GHz, 2.6GHz, & 2.8GHz Core 2 Duo Models. PC5300 DDR2 667MHz 200 Pin. New, Lifetime Advance Replacement Warranty.

I bought the RAM here: https://eshop.macsales.com/item/Other%20World%20Computing/53IM2DDR4GBK/

The RAM was $96.98 with shipping and will hopefully be here soon. When I get the RAM I'll try to install it myself and then hopefully install Snow Leopard and do things the Apple way.

A side note for the people that aren't too great with computers: RAM stands for Random-Access Memory. In a nut shell, RAM is where your computer stores information that can be randomly accessed as opposed to information stored on discs where the time to access information depends on the location of the previous memory accessed. 512 MB of RAM basically means 512 megabytes of information can be stored and randomly accessed. A computer operating system intelligently stores the most recent and relevant information in this RAM so that your computer can run faster. For example, imagine you have thousands of books stored in your shed and a small bookshelf that is easily accessible in your house. The books you read more often you will keep in your bookshelf so you don't have to go outside to the shed every time you want a book. Getting a book from this shelf is much quicker then going out to the shed and searching through thousands of books. This is similar to the way your computer accesses information. The RAM is like the book shelf and your hard drive is like the shed. The hard drive can store hundreds of gigabytes or even terabytes of information but it typically takes longer to access than the few gigabytes of RAM storing the most relevant information. Basically, More RAM = Faster computer.

Thursday, September 9, 2010

Getting Started - Complications

Last night I went to the Apple store with my Mac in hand, ready to upgrade to Snow Leopard. I was greeted by a friendly guy in a crowded Apple store. I asked him if my laptop could run the new OS and he didn't know, but pointed to the location of the Snow Leopard disc. I picked it up and looked on the back for requirements. I was happy to see that it would only cost $29 to upgrade. After carefully skimming the small, thin case I found the requirements in tiny print on the side:
  •  Mac computer with an Intel processor... CHECK!
  • 5 GB of available disk space... CHECK!
  • DVD drive for installation... CHECK!
  • 1 GB of memory... SHIT!
My mac laptop only has 512 MB of memory! I searched some blogs on the internet to see if Snow Leopard would install and run, even if it would be slow. Snow Leopard is supposed to take up less space and run faster than Leopard, so I thought this wouldn't be a problem. Apparently when you try to install Snow Leopard, the installer checks the hardware of the machine to make sure it is compatible. I even asked a "genius" and he said that it would not install. So now I'm stuck with a Mac laptop running Leopard that can't upgrade to Snow Leopard which is required for Xcode. What about installing the last version of Xcode that would run on Leopard? Seems simple right? Not with Apple.

Apple intentionally hides older versions of their products. Try downloading an older version of any Apple product, I dare you. From their point of view, I can understand that a software company would want their clients to be on the latest and greatest software. From the point of view of a consumer, which is an important view, I would like to be able to install software that works on my computer without having to buy a new one every year or two. This seems like a shady way to force users with a perfectly fine, working laptop which happens to be a couple of years old to buy a new one.

Everyone talks about how great Macs are and how great Apple is, but I've found that this is only the case for people with limited computer knowledge. As soon as you want to do something your own way, which is synonymous with not-the-apple-way, you will run into problems. Your iPod/iPhone/iPad has a hard drive on it. Why not let you drag and drop music and video on these devices? Because Apple wants you to do it their way, which means spending money in the iTunes store. They defend this buy claiming they support artists and don't want people illegally sharing media. If they really cared about artists they would give more than 65 cents per download to the industry. After that 65 cents goes through agents, production companies, etc. the artist probably sees less than half of that. Apple is a big company and companies will try to squeeze money out of people any way they can. That is the real reason they make you upgrade to their latest software, which requires you to buy their latest hardware, and then purchase media in the 21st century when nearly no one does it so that they can profit from the creative works of others.

Sorry about that rant. I was never a big fan of Apple before I started this project and since I've been working with Macs, I dislike Apple even more.

It took me about half an hour to finally find Xcode 3.1.4 and download it. This is the latest version of Xcode that would install on Leopard. Here is how I found it:
  • Go to http://connect.apple.com/
  • You will need to login with your Apple ID
  • Click Downloads on the right sidebar, then click Developer Tools.
  • There are a lot of things to download so the quickest way I found it was by pressing CTRL+F or on a Mac you press the Apple Cmd key +F. This will bring up the Find window, which is a useful tool for browsing any webpage, word document, excel spreadsheet, etc. Type in 3.1.4 and you should find the download link.
  • I found these instructions from: http://matthew.mceachen.us/blog/download-xcode-3-1-4-for-leopard-716.html
Success! Xcode 3.1.4 installed and I opened it up with excitement... only to once again be disappointed. When I created a new project there were no iPhone app projects available. It seems that the iPhone SDK did not install with Xcode. My only options were Mac project templates so again I became frustrated.

For those with limited programming knowledge, an SDK is a Software Development Kit. This is a set of tools that allow a developer to create a program for a particular function. In this case I need to make an iPhone app so I need the iPhone (or iOS as it is now called) SDK. Xcode allows developers to create all kinds of applications and has templates to help developers do so. Think of the iPhone SDK as a plug-in to Xcode that has templates. If I want to make a calculator app there will be a template that can assist me. But if I want to create a game there will be a separate template specifically for games. Without the iPhone SDK I will not have access to any of these "templates" that are crucial to developing an app.

So I searched the internet again to find the latest iPhone SDK that would install with my environment (Leopard, Xcode 3.1.4). It appears that iPhone SDK 3.1.3 is the latest version that will work with my configuration. After an hour of searching, still no luck. The closest I came was a link I found on this site: http://forums.macrumors.com/showthread.php?t=898518.

The link to the download is supposedly here:

iPhone SDK 3.1.3 with XCode 3.1.4 for Leopard
http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk_3.1.3__final/iphone_sdk_3.1.3_with_xcode_3.1.4__leopard__9m2809a.dmg

I tried that, logged in, and was linked back to Apple's website to download the latest iPhone SDK, which will not work with my version of Xcode. Many of the websites I have found that claim they have an older version download actually just link to Apple's website where you can only find the latest versions. I'm again frustrated and stuck at the moment. I'm going to try a little longer to get the iPhone SDK working. I'm also going to search craigslist and ask more friends and family for a newer mac. I have until Tuesday night to complete my next assignment for my class. Luckily it is a project using only objective C so I can get by without the iPhone SDK, for now.