Bloganniello

Welcome to my brain... A Blog by Isaiah Ianniello

iOS App Development - Objective C

In the last App Development blog I discussed workflow tools that come with being an Apple Developer. Check it out [here].

This time I’ll be talking about Apples guide with learning Objective-C, which is the coding language, used for iOS apps. Check out the full guide [here].

I only have experience in coding XML, HTML and CSS so there is no question that jumping into Objective-C is difficult. Luckily apple’s guide does make it fairly easy. One of the great things the guide mentions is that if you are new to object oriented languages then just think of an object as a structure with functions associated with it.

The next section of the guide tells you the benefits of using Objective-C over other object-oriented languages. The main benefit is that the language is dynamic. This means that it permits the apps behavior to be determined while running. It gets it’s dynamism from 3 things. Dynamic Typing: This allows for any type of object to be substituted at runtime and lets runtime factors determine what objects should be used in your code. This gives flexibility to an app, however also takes away data integrity. Dynamic Binding: defers the decision of which method to call until runtime. Dynamic Loading: allows for the app to load executable code and resources as they are needed, instead of having to load everything at once. This saves on battery life and memory usage.

The next part of the guide discuses Classes and Objects. From it I learned the 3 main extension types. They are .h – Header Files, which contain class, type, function and constant declarations. .m – source files. A source file with this extension can contain both Objective-C and C code. .mm – Source Files. A source file with this extension can contain C++ code in addition to Objective-C and C Code. The guide says to only use this extension if you actually refer to C++ classes or features from your Objective-C code. I would recommend checking out this section of the guide to help you understand the basics of Objective-C.

The guide is fairly long and is a lot to take in at once so I will be writing more about it soon. 

Mix Nashville - Recording Live in the Studio: Bleed is Your Friend

I had the pleasure of attending the Mix Nashville event hosted at Soundcheck. There were a few panels over the course of two days and the whole thing was free. There was a lot to learn from the whole event but I will be discussing the first panel.

    

The title of the panel was Recording Live in the Studio: Bleed Is Your Friend. The moderator for the panel was Chris Grainger, who is a Nashville Based producer. The panelists were Russ Long (Engineer), Dave Cobb (Engineer), Joe Costa (Producer), and Marshall Altman (Producer)

The overall subject of the discussion was recording live. What I took away was that there are a lot of pros but also a couple cons to recording live and keeping bleed in the mix. The most important thing to mention about recording live is that there is almost always a better collection of energy among artists if they are all playing together. 

Most bands play off of each others energy, which means that the energy level as a collective is much higher. When you separate the band up and piece parts of the song together you are sucking the life out of it. The band being split up prohibits their ability to play off each other. Understandably some instruments are too loud and will bleed too much and in this situation it is okay to put amps or individuals in iso booths, as long as they can all see each other.

However, the energy collection won’t matter if the band sucks which brings us to the first con of recording live.  If a member of a band simply can’t play along with their band then it will be necessary to piece parts together. Unfortunately, finding a good band can be hard to do, meaning that piecing together of parts is far too commonly needed. 

Bleed is extremely valuable in a recording to some limits. Bleed is the byproduct of the band playing together. You want to keep that in the mix as much as appropriate. It adds a 3d quality of people playing off each other. Obviously you need to make sure that the track doesn’t have too much bleed or the instrument that was being recorded won’t be able to stick out in the mix. However, allowing for the piano to be heard slightly in the vocal mic helps the listener hear a 3d space naturally.

The most important thing to remember about bleed is that phase alignment is crucial. If you capture a beautiful bleed from another source but it is out of phase then you are hindering the potential of the bleeds original source. In other words, if you hear drums in the guitar cab mic and it is out of phase, the captured bleed will actually hurt your main drum capture. 

The most important thing I learned from this is that bleed and recording live with a good band will give life to your mix more than any effects can.  There were some other points mentioned that don’t even have to do with the capturing process. One great thing to remember is that you are a service. You need to make sure that your artists are comfortable. Schedule your recordings around food. A happy stomach makes for great recording. While, your job is to capture sound, you also need to capture life.

iOS App Development - Xcode Workflow

In the last post I talked about the tutorial apple gives you to teach Xcode. Check it out [here] if you missed it.

The next tutorial in the getting started guide is all about managing your workflow. The Workflow tutorial can be found [here].

Xcode has many ways to help your workflow.  I’ll list these things.  All screenshots are from Apple’s tutorial.

You can open source code files in both safari style tabs and new windows as well. This is a great way to help your workflow. However, I would recommend having an extra monitor if you want to use the multiple window option.

             

           

Xcode also allows the user to text their App in the iOS simulator and on a iOS device. The simulator is a great way to quickly check your app. Testing on an actual iOS device is also a great tool. It is also extremely important that you test your app both in the simulator and on multiple iOS devices extensively. I would also recommend that you have your friends play with your app on an iOS device before releasing it so that you can be sure your apps user interface is easy to use.

          

In order to test your app on an iOS device you will have to sign up for the iOS Developer Program if you haven’t already done so. That can be done [here]. You will also have to take a few steps to enable your device to test the app. The instructions on that are all in Apple’s tutorial.

Xcode also has excellent access to their help documention.

Another great workflow tool that comes with the Developer Program is the Instruments Application. It is used to analyze the performance of your app while it runs. It gathers data and allows you to see things like the app’s memory usage, graphics performance, and many more.  This is an extremely valuable tool since it can help you recognize areas of your app that may need more work.

           

Another and final great thing that you can do to help your workflow in Xcode is manage versions of your app. You can take a project “snapshot” manually at any time ore set up Xcode to automatically do it. 

All of these great workflow tools are described in great detail in the tutorial. It is important to learn them if you want to be as efficient as possible.

iOS App Development - My First App

Last post I showed all of the sources I’d be working with to learn how to make apps. Check it out [here] if you missed it. 

This past week I started using apples [Start Developing iOS Apps Today] guide. It has a simple intro and then basic installation instructions for the tools you will be using. The next step in the guide is “Jump Right In”. It’s a tutorial on how to use Xcode. It does have you use some coding and explains what the coding you are using does but it isn’t about teaching coding. It is simply about getting you use to the Xcode interface. Xcode looks like this: 

It was a great tutorial and after getting through it you will have created a very basic app. The app allows the user to type in their name. Then when the “Hello” button is pressed it greets the user. A picture of this is below.

                                       

Over the rest of this guide Ill be learning about the other different things I need to know before I’m ready to really learn coding. I definitely still have a while to go even on this getting started guide but it should all be a great process. The timeline of the Apple guide looks like this. I will be starting “Tools” part now.

iOS App Development - Making Your App

In the last post I did a quick conclusion of my whole planning process of making my app. Check it out [here]

Over the next few months I will be learning some coding and how to use Xcode. I have absolutely no coding experience. Since my starting point is from the absolute beginning I hope that what I learn will help others like me.

The first step is to become an Apple Developer. Go to the [Apple Dev Site] to do this. It costs $100 per yer, per type of development license you want. If all you plan on doing is making an iOS app then all you need is the iOS developer license. You can get Xcode for free from the App Store but if you want more resources for development like libraries, tech support, ability to test on iOS devices, etc. then you will need to buy the developer license.

There are some other fun benefits you will get by being a developer. For example, you will be able to get the new versions of iOS that come out before they are released to the public. 

There are an infinite number of websites and books dedicated to teaching people coding. However, after days of searching all of them I couldn’t find any that were a good starting point for someone with no coding language background.

Naturally the solution had been right in front of me the whole time.  Everything that you need to know to get started is in the [iOS Developer library]. There are a ton of resources here and it should be bookmarked as soon as you get there. Check out their getting started section to begin learning some really basic stuff.

Seal Vs. Nickelback

There are definitely some similarities between “Kiss From a Rose” - Seal and “Hero” - Nickelback. Both songs were featured in superhero films. Both music videos incorporate clips from the movies in them. Even at the very beginning of both videos we see the hero zipping past us. Then when you listen to the chorus of both songs… well just watch.

Seal - “Kiss From a Rose” - Chorus starts at 0:45

Nickelback - “Hero” - Chorus starts at 0:35

Mind = BLOWN

iOS App Development - Final Thoughts… For Now

In the last post I discussed user interfaces and some important things about them. Check it out. [iOS App Development - Designing a User Interface]

I have now finished my first complete presentation of my app. It has all turned out very well. Right now the app is only designed to be in portrait mode but I would like it to also be landscape compatible as well. I am not sure what my next step will be but I will make sure to post about it when I get there.

Now that I have finished the keynote presentation I do have some final thoughts.

Keynotopia was a great starting point for me since I really had no idea what I was doing. However, looking back on it, I wouldn’t use it and just make everything myself. All you really need to do is get your presentation in the right format (640 x 960). After that I believe it should be able to make everything you need using either keynote or maybe photoshop if you want to get some more in detail design. Any simple buttons can easily made using keynote. If you need the icons apple uses then just take a screenshot on your phone and use some simple photo editing to use them.

Make sure to check a clickable pdf version of your app frequently. If you plan on presenting this and will be using the buttons you make it will save a lot of hassle. Checking it frequently will ensure that you don’t have any bad loose ends that cause larger problems later on.

 Heres a good link for some tutorials on how to design apps and even get into  iOS SDK. [Mobile Tuts+]

Heres a link to apples developer page. [Apple Developer]

Once you get to the point where you are ready to actually do some coding you will want to register as an Apple Developer. It costs $100 a year to be a developer and register for the iOS tools. 

iOS App Development - Designing a User Interface

Last post I talked about testing your progress on your iPhone. Check it out. [iOS App Development - Testing Your Progress]

This is one of the most difficult and time consuming parts of designing an app. My app has the ability to database user input information. This week I’ve been working on how the user can find their items in the database. I’ve come up with the best way I think this will work. The user is presented with a list of criteria to choose. They can select specific criteria or choose go. If they select criteria, they will be brought to another list of criteria. This will allow the user to find the specific item they are looking for. Examples of how this works is shown below. I’ve replaced my actual buttons with buttons as if the app was for pizza. This is just for secrecy.

       

        

Once the user has all the criteria they want entered they can then press go and will be brought to a list of items that fit that criteria. This is seen below. 

       

Once selecting the item they want the user is brought to the page for that specific item. Under here they will have the ability to see basic info, a picture of the item, and other options. This is seen below.

       

The best thing to do after you design your own UI is to save the keynote presentation as a clickable PDF and load it on the Keynotopia app. Then give someone your phone and see how they navigate around. If your friend can pick up the phone and navigate to where they want easily then you have a good UI. If not, then your design is not intuitive enough and you will have to make some minor adjustments. I had to go through a couple of tries before I got my UI working easily and intuitively.

iOS App Development - Testing Your Progress

In my last post I discussed setting up your keynote format and also how to use hyperlinks to make virtual “buttons”. Make sure to check it out. [iOS App Development - Presentation And Hyperlinks]

After setting up a few pages and hyperlinks it’s probably a good idea to check out your progress on the iPhone. In order to do this it will be necessary to purchase Keynotopias app. It costs $2 and can be found [here].

You will need to export your keynote presentation as a PDF. In order to do that click Export under the File tab. Then select PDF. Under the Options list make sure that all boxes are left unchecked. If you want to add a bit of security to your design then you can check the “include date” box and that will add a time stamp at the bottom of your PDF that is visible on screen.

       

After the Keynotopia app is downloaded you will need to connect your phone to your computer in iTunes. Go to your apps tab and select Keynotopia under the File Sharing Apps list. Then drag and drop the PDF you created into the documents section and hit sync.

Open up the Keynotopia app and select your apps PDF. This will allow you to view your presentation as it would look like as a real app. You will even be able to tap on the hyperlinked buttons and it all should function well. Testing your app as you go along is very important and will help ensure that you don’t make any silly mistakes that could be potentially dangerous.

iOS App Development - Presentation Format and Hyperlinks

In the last post I discussed the basics of using Keynotopia. Check out that post if you missed it. [iOS App Development - Using Keynotopia]

Unfortunately, I came across a couple of issues with the presentation I was making for the app. Keynotopia is a great resource, however there are a couple of things that are necessary to do at the beginning to be sure that you aren’t making the mistakes I was. Except for making starting the new presentation, everything else written in the previous blog was correct.

First of all, start a new presentation and for the theme just select the white and blank presentation. Obviously a default slide like this is not the right resolution for the iPhone. What you will need to do is start by deleting the text boxes that are in there. Then go into the inspector window and go to the document tab. Under that tab select the slide size drop down menu and select custom slide size.  You’ll want to make the width 640 and the height 960. Below is a picture of the inspector window with those changes made.

                                       

Now that that issue has been addressed we can start talking about making the buttons on the app actually go somewhere. This is done through hyperlinks. All you have to do is select the object (the button) that you want to make go somewhere and then select the hyperlink tab. Check the box that says “Enable as a hyperlink” and then select the slide number option and enter the number of the slide you want it to go to. Below is a picture of what this looks like.

                     

There are a couple things to mention about the hyperlinking process. It is possible to select the “next slide” or “previous slide” choices when hyperlinking an object. However, I recommend getting in the habit of just selecting slide and choosing a slide number. By selecting “slide” and choosing a number to go to, that object will always automatically change the slide number it goes to appropriately to the number of the slide it originally goes to. This means that if I put a slide in between those two slides the object will still to the correct slide even though its number has changed. The other thing to mention is that if you put an object over a button you will want to hyperlink both the button and the object that is over it so that no matter where the user clicks in that area, it will always work.