Sunday, December 2, 2012

Custom Fonts in an iOS App


UPDATE --  Swift 3 and Xcode make it easier than ever to add custom fonts to an iOS App. Below is the updated video for this.  Below is the original post with all the extra steps. 




ORIGINAL POST -------
In this post we are going to explore the world of custom fonts and iOS.  Now there are plenty of fonts built in but there might come a time where you know of an OTF or TTF file that has the exact font you want and is not in the choices in Xcode.  

Step 1: Find Your Font
For this app you can use any otf or ttf type file.  A few options are Font Squirrel or Smashing Magazine.  You can also use any other free fonts that a Google search turns up or you could build your own.   

Step 2: Add it to Your Xcode Project


Step 2: Use the following code snippet to find the font name.


Code Snippet
for(NSString *family in [UIFont familyNames]){
        for(NSString *font in [UIFont fontNamesForFamilyName:family]){
            if([[font lowercaseString] hasPrefix:@"w"])
            {
                printf( "Font: %s \n", [font UTF8String] );
            }
        }
    }


Step 3: Apply the Font to your Label


As Always Happy Coding
Jeremy Skrdlant

Wednesday, November 21, 2012

Henry's Headlamp Discussion

The idea for this tutorial came from the NYTimes article on how it is hard to make a living making apps.  My response to that is the fact that it is hard to make a living at anything when you go out on your own.  Some times the businesses succeed and sometimes they fail.  I see a need for apps and app developers and there still seems to be demand if you are willing to work hard and keep current (That might include working for someone else).  There is still the opportunity to go out on your own but you should be aware that there is no field of work where you are guaranteed success just because you showed up.  Your main goal for going on your own is your passion to create new things and be your own boss.  Money is a small part of that equation.

Enough of the rant though and lets start building the functionality seen in the App Henry's Headlamp.

Intro



Step 1: Create the Masking image



Step 2: Add to Xcode and Create the Touch Events.



There you have it.  A pretty simple concept that makes  a neat effect but was not enough to make Campfire Apps a profit.  Here is a quick list of possible issues that occurred with that company.

Limited Audience - They have a strong focus on one audience that does not have the power of a bank account.  Toddler apps are a tough sell when there are so many free ones out there that do the job.

Unknown Character - This is the first time I have heard of Henry.  I am curious if they did likability studies with their target audience to see if they related to the kid with the headlamp.

Limited Game Theory - There were really no levels to increase the intensity.  It was also similar to a game of memory where you had to use skills to remember where you saw something.  Unfortunately this went away because every time you spot an item, the game randomizes the scene again.  This changes it from a game of skill to a game of chance.   The reward system was ok but it was more of a choose the item and they put it in place for you.  It would have been nice to be able to drag and drop your reward yourself.  There are many great books on gamification and game theory.

Advertising - I am curious how, when, and how much advertising they did for their business.  From the article it sounds like they bought a lot of equipment but forgot to go out and sell it. I think the NYTimes article might actually help them a bit by developers trying to learn from other people's mistakes.

When is a sequel a good idea?  In any business you can make money off of a sequel.  The biggest factor is if the original was a success.  After that you will generally make a little less money the second time around.  The choice is yours to continue but you should look in the original amount of money you made and see if it is more than the cost you are going to spend making the next version.  Some costs do go down like pre existing code but there is always the cost of time, new artwork, and more advertising.

These were my thoughts on that article and I would like to hear your opinion to.  Be sure to comment below and Happy Thanksgiving!!

Thursday, November 8, 2012

Tech Expo Day in Mobile App


For Tech Expo, our department let the visitors try their hand at making a simple drum app.  It was basic buttons and actions that played short mp3 files of the drum being hit.  The students enjoyed it and it seemed to be a good view of what we do in this department.

Some of the concepts covered in this app where:
  • AVFoundation AVAudioPlayer
  • UIButton (Custom Button with no text)
  • @property tags
  • NSURLs



Happy Coding
Jeremy Skrdlant

Sunday, November 4, 2012

Implementing the Morning Cup of Coffee


Starting with the time change we are going to implement the morning cup of coffee.  From 8 to 9 am every day there will be a meeting in the Yellow room where the coffee is free for that period of time.  Everyone will participate one time or another in showing apps they found. We will look at each app and discuss the following questions.
  • Does it implement good design?
  • What is the core functionality?
  • Which Libraries did they use?
  • Can we recreate the algorithm they used?
  • Is there a way to make it work better?
From this we hope to keep current on trends in apps along with improving your ability to emulate others in creating apps.  If you are learning to play guitar, you often try to learn songs from people who inspire you.  If you get good enough at recreating their songs, you soon gain the ability recreate your own ideas that are not recorded yet.

So lets welcome the morning with a bold brew of Folgers and a discussion involving our passion of building apps!

Week 1
Angry Birds - Discussion on Variables and Objects used in the game. 

Grafio Lite vs. Gliffy.com - Discussion on the use of tutorials and help tips in the app.  Comparison of a Cloud based service and a native app.

Google Election Results - When is it a website and when is it a Mobile App.  Who owns Data and what are the privacy concerns.

Epic Drum Set - We were building a drum kit for Tech Expo.  We studied this one and had the students try to layout how they would build it.  Then we went and implemented it in the lab.

Snoopy's Fair - Look at large scale sim like apps that promote building stuff together.


Week 2

FieldView - Look into the hardware component of apps.  How to communicate with 3rd party devices like the sensors that fit on tractor planters.

Minecraft - How apps can start with simple objects that get more and more complex over time.  Also looked at some of the flowcharts that described rules for building.

Hoccer & Sleep101 - Apps that use accelerometers and the gyro to improve the user experience.

Forge of Neon - A look at an OpenGL app that takes advantage of camera rotations and multiple gestures.

ARBasketball - A look at augmented reality and ways to use it to sell other products.


Week 3

Burrito Maker - Literally Cheesy app but a good look into inheritance and composition

Henry's Headlamp - Discussed the NYTimes article on it being tough in the industry. My Reply to that article.

Turkey Talk, Turkey Blast & Thanksgiving Menu Maker - Discussed seasonal apps.  Benefits, promoting, and the role of seasonal apps in a mobile society.

Have a great thanksgiving break!


Week 4

The Impossible Game - Had a discussion on the Freemium model of making money off of apps.  How long should you let a user get free service until you start charging them?

i3D & Dodge That - A look at head tracking apps that use the position of your face to determine how to draw the screen.  This was originally seen in the famous Johnny Lee YouTube Video.

Infinity Menu - We looked at a great design and then an app with the same name that has to be honest a horrible design.  You can see the nice design here and download the bad design to get an understanding of the importance of starting with the design and not implementing and thinking of design later.  This might change as soon as the developers get the design upgraded but for now it is a great example.

Snapchat - We looked at this very popular phone app that is super simple yet really popular.  The most interesting concept is that there is not concern for saving any of the data for later.  It is sort of the anti data horder app.

Flow Free - A great simple game that uses metaphors of water pipes with the sounds it plays when you get a connection.  It also builds off the principle that motivation comes from many small successes that are built off the others.  It doesn't throw you into the ocean but rather lets you gradually walk in.  It is also the type of game you can start and stop in any spare amount of free time you have.  A true downtime waiting in line type app.


Week 5

Voxer & HeyTell - A look at walkie talkie type apps.

Magic Plan, Easy Measure, & iHandy Leveler - Discussed measuring apps.  Looked briefly in the trig involved with finding the measurement using the triangle to the floor and the angle of the gyro.

iMotion HD - Looked at stop motion photography and discussed methods of storying the data so it could be played back at different speeds and edited.

Paper by 53, Sumo Paint, & Sketchpad - A look at the many drawing apps that are available.  Discussed features and what could set an app apart.

Backwords - Trying out the partying games.  A look at games that are designed for groups to take part in.  We also created a MadLibs as a group.

Week 6

Web App Games - A look at games that are in web app form.  When does it change from a website to an app?  What are the best practices for creating a web app game?

Wunderkit - A look at a web app that unfortunately is going away back to Wunderlist.  Interesting look in apps that try to get groups of people working together in an organized fashion

Smash Heat - A look at a game that uses notifications with rewards to bring the individual back over and over again.

3i show - Discussion over how to make a web app that would be futuristic and useful for both individuals attending and participating in an event.

National Parks - Interesting app with lots of features that are discovered over time.  The images really make this app.


Week 7

Tone Pad, Alchemy, & SoundPrism - A look at music synth apps that make making music easy.

Mindshift Article -  A look at artificial intelligence and a discussion on how the students would start a project that involved coding a program that can recognize creativity and understanding.

Weather Apps - A look at weather apps and the APIs that feed these apps the information they need.

Christmas Break
Have a happy holidays and I look forward to seeing you in the new year!!!

Saturday, November 3, 2012

Making Your Tutorials ADA Compliant

YouTube now automatically does speech to text caption creation on videos you upload.  This is a nice feature but if you watch your videos, you will often spot many small errors in the translation.  That results in your videos being hard to decipher for individuals who are deaf.  Luckily YouTube has made it easy for you to edit those captions.



Here are the Steps
  1. Log into your YouTube Account
  2. Click on Video Manager 
  3. Find the Video and click on Edit
  4. In the Tab Bar choose Captions
  5. Click on the English Translate Track
  6. Beginning Modifying till your hearts content

Friday, October 26, 2012

Free Weekend Tutorial - Astah Like Menu System


Creating a Dynamic Menu System Similar to Astah





Intro


Getting Started
Create a single viewed application.  Drag and Drop your artwork inside making sure you copy it.

Step 1 - Make it Purdy
 
 
Step 2 - Get Touch Interactions

Step 3 - Add some UIView Animations

Step 4 - Get them to Disappear when you are done with them.
 

If you are interested in becoming an app developer, please visit us at Northwest Tech

Enjoy and have a great weekend!!

Sunday, October 21, 2012

What is cruft code?


While I was in Denver this weekend I noticed a good example of cruft code.  Simply put it is code that is never used.  The reason it never gets called is because of bad design, bugs, or upgrades that where poorly planned.

In the example above, the shower ring stops the door before the door stop.  The door stop is never used no matter how you try to open the door.  They could of either designed the system to give the door enough space to use the door stop or they could of simply left the door stop off.  Either way it seems wasteful.  Imagine the money this hotel could of saved if they would of left these off of every single room in the place.  In software, it doesn't lead to material waste but it can make your code harder to read and debug.  If you must have cruft code, make sure you comment and explain why.  This way future developers can spend more time using your code to make greater things rather than spending time trying to figure out your code. 

For more examples and further definition, view the wiki page on this topic. http://en.wikipedia.org/wiki/Cruft

Happy Coding.

Saturday, September 22, 2012

Notes From the Audio Meter Project

I was working on a checkpoint for my second year students that was heavy in quartz graphics when I noticed there were some really important teaching moments in this simple app.

1. Always Test on a Physical Device
 The video shows the difference between an app in the simulator and the same app running on an iPhone 4.  You can see quite a bit of difference between the responsiveness of the two.


This also points out an important part of designing apps.  Make sure you understand your customer base and test on the products that they use as well.  There is a lot of buzz about the new iPhone 5 but if you only test on that version, you leave out all the iPhone 4s, 4, and previous phone model owners.  More customers equals more money.

2.  Use the correct tools to troubleshoot the problem
Instruments in Xcode are your friend.  I would recommend using instruments even if your app is running great in the simulator or the physical device.  There is always the possibility of an unforeseen bug that can be picked up using these tools.

On this project I saw the tell-tale signs of a memory leak.  The first image is of the application with the memory leak.  Notice the red markers put there by the instruments and the overall slope of my memory usage over time.  The second image is after I have fixed the leaks.



3. Enjoy the process
App development is not a multiple choice problem where one answer is correct.  It is a constant science experiment where you get to hypothesize, implement, reflect and try again.  My app is running better now but I am still thinking of ways to make it more efficient and better. 

If you are going to be a successful app developer, you better love the process and not just the end result.  It is sort of like putting together a puzzle.  The reward is in the work and not the final product.

Happy Coding
Jeremy Skrdlant

Saturday, June 9, 2012

Can Our Cell Phone System Save You From a Tornado?

I was trying to think of questions that I as a teacher could ask my students that an iPad could not.  My example was asking a student to choose any topic.  If they chose the topic of weather,  I would ask "How could you limit the number of deaths caused by tornadoes".  Then you could look and analyze there problem solving skills even if they did not come up with an exact answer.  In thinking up that question I thought of a possible solution.

A Solution:

Cell phone towers connect to your cell phone even when you are not on them.  When a Tornado Warning area set up by the weather service overlaps a cell phone tower, the tower should call all phones that are in the vicinity of that tower. A message like "This is the Weather Service. You are currently in a Tornado Warning Area.  Take Shelter Immediately." would be played.

After the message is delivered, the cell phone GPS can be stored in a database and emergency personnel can know the exact last known locations of individuals in that area.  That way they can have a better idea of where to start search and rescue.

Please let me know your opinions on this solution.  I do understand that if the power to the Cell phone tower goes out it will be a useless system but if it is part of many other warning systems, it can be a major help to society in my opinion.

Update:
NOAA has implemented a system similar to this.  It turns out they have been working on this for years. You can read a news story about it at this link: http://www.noaa.gov/features/03_protecting/wireless_emergency_alerts.html

Friday, June 8, 2012

Can You Replace a Teacher With an iPad?

An artist can not be replaced by a tool just as a teacher can not be replaced by an iPad.  We are here today to discuss the important role of both technology and teachers as they work together to improve education. 

This is a comment post that we hope to see lots of useful information come to fruition.  So to get the ball rolling,  "Why should you get to keep your job as an instructor when a device like the iPad exists?"

The hash tag of this conversation on twitter is #BeAMaverick.

UPDATE:

The conference went well and there was some good input.  A note to myself and instructors that want to use twitter in the class is that you need to start a hash tag early if you want lots of support from an online community.  It is like any kind of event.  You can not create some signs in the morning and expect lots of people to be aware of your event.  It takes an advertising strategy where you build up to your event. 

One of the big topics we saw at the conference was that the students of K-12 education are being taught skills that are based on algorithms.  These are problems that have a clear set of steps to achieve success.  These skills can be taught by an iPad since they can be drawn up in advanced and they know the expected outcome to grade the student. 

This is great except that most employers do not want those skills.  They are useful for assembly line work which has been fading in the United States.  Would you want a carpenter that has the skill set of building those prefab desks that have the instructions shown step by step or do you want a carpenter that can analyze any section of your house and adapt to any possible issues that may arise?

What current employers are looking for are those students that have learned in a heuristic environment.  This is where you apply problem solving skills to try to solve something that does not have any clear outcome.  It deals with the ability to discover new knowledge.   Currently the iPad or any other computer is weak on this type of processing.  

You will find code that is heuristic in the AI(Artificial Intelligence) field.   It is still something that computers can do but not very well.  IBM Watson is an example of this type of program.   A majority of code developed for computers is algorithmic in that it behaves in a predictable manner by following a set of steps set up by the programmer.  When you press save you want the program to save your data.  You don't want it to think about how to save or other possible ways of saving.  You just want it to do what you told it to do.   This is a difference between employees and computers.  People are fine laying out step by step instructions for a computer.  They are not OK with hiring a new employee that you have to explain their job to them step by step all the time.

Heuristic style programs will be interesting to see in the future when we get better AI.  Can a computer program teach and analyze your problem solving skills when there is no set answer?  Can it use a knowledge base to determine if you are getting better at solving real world problems and can the test adapt to your learning.  Would it be able to raise the bar at exactly the right time to keep you moving on the right track? 

Another big topic was that learning occurs when the student reaches a failure and they have to think and analyze what went wrong.  A good teacher will swoop in at that very moment and help the student just enough so that they don't give up but that they solve the problem and become motivated to move forward.   It is a fine line where you want them to struggle a little so that they really think about the problem they are trying to solve.  You don't want them to spit out facts and that be the end of the class.  You have to be careful not to burn them out either.  I feel this is an area where the iPad is weak. 

It will be interesting to see if future apps use the front facing camera to determine if a student has understanding or if they are confused.  It will also be interesting to see if they can build educational apps that push the student at the right pace for them to be successful.  This is already in the computer science field but it resides in games and not as much in education.  A good game will push you enough so that it is challenging but not ridiculously impossible. 

Overall it was a great learning experience.  Please comment if you have thoughts and ideas yourself on how teachers and iPads can work together to get the most successful students. 


Sunday, June 3, 2012

Camper Guitar - Why have 1 when you can have 2

The quad coil pickup area is ready for business
This is the second post in this series on my blog.
First part: Someday I Will Own a Guitar That Looks Like a Camper

This was a busy weekend but I still had time to do some modifications to the guitar.  I started out expanding the bridge pickup cavity so that it could hold two humbuckers instead of one.  I drew out the area that needed routing and I used my plunge router to make some room.  It's a little rough so I will need to do some sanding.  On the bright side, this section will be completely hidden by a sheet metal racing stripe down the center.  This will give some nice style and remove the need for finding custom pickup rings to hold the quad coil.  Another benefit is it will create the top portion of the shielding as well.

Sweet metal plate I found on the original camper
The other feature I added this weekend was the dual output jack area.  I needed a custom plate and I found yet another part to harvest off of the original Camper.   It has a nice vintage look plus the words Higher Voltage always help.   I will have to cut it down and get the holes drilled in the plate itself.  I will also be sanding down the area so the plate will be flush with the body.

For now I have the two holes drilled in the side into the cavity.  I mentioned in the earlier post that I want stereo output on this guitar.  The Acoustic pickups section will go out one jack and the humbuckers will go out the other.  This will give me the ability to blend the sound of 2 amps and get a nice effect.  This is not the first guitar to have multiple outputs.  Gretch introduced a guitar that has a splitting of the upper strings from the lower ones.  You can read and see more about it in this article.   My friend Kirk also has a stereo Wurlitzer guitar.  This guitar uses one output jack that can have a stereo or a mono cable plugged into it.  It has an A - B knob that lets you control the blend of both pickups.   Both are ingenious ideas and a different twist that you often don't see on most guitars today.

That's it for this post.  Happy modding everybody!
Getting closer with more cavity space and a location for the output jacks


Friday, June 1, 2012

Someday I will own a guitar that looks like a truck top camper!!

Rough Layout of the Project
I started thinking about taking a kit guitar I received from a friend and making it into a cherry red SG with a gold Bigsby vibrato. But when I thought about it I realized that you can buy a cherry red SG with a gold Bigsby. It is a common model. So I was walking around looking for inspiration and I saw a plaque screwed on the front of a decrepit old camper. I decided that would look nice on a guitar so I started salvaging parts off the camper to include in the guitar that had a new inspiration that I personally haven't seen before.

In this blog I am going to write about my progress in creating the Camper guitar. It may go through some rough spells and it might come out iffy but by gosh it will make some sort of sound when I plug it into an amp on its maiden voyage into the world.

Using Dremel to flush mount the plaque.
For electronics I decided on 3 standard pickups and an acoustic pickup. Two of the pickups are scrapped from an ESP that I replaced with Seymour Duncan Blackouts. I thought I could make a solid 4 coil brick at the bridge that would run pretty hot being wired in series to a single volume and no tone. On the acoustic side of things I am going to try having a volume, tone and a push pull that redirects the output to a separate jack. That way I can have it in the mix to a single amp or pull up on the tone to send the acoustic electronics to a separate amp. 

So I was sitting there looking at the SG body with this huge king like plaque trying to figure out how to place it. After a while of observing I settled on at the bottom where the horns of the guitar lined up with the points in the crown. I noticed the plaque was a little thick so I thought it would be neat to flush mount the whole thing into the body. With a pencil trace and a Dremel I am on my way to building the Camper guitar. Stay tuned for future updates to this project.
Close to being flush

Thursday, February 23, 2012

Webinar or Video

Both of these tools have their benefits and I have used both in learning more about programming myself. One webinar course was great but it was actually more of a video. Everybody’s microphones were muted and your questions were directed to a secondary host. This kept the pace fast but limited your own input. It was more of a sit back and watch while the instructor is lecturing the material. One flaw was if your connection dropped out and you had to log back in. This situation put you behind the rest of the group which can obviously frustrate a student.

Videos on the other hand have the obvious benefit of pause and rewind. The quality is often better and you get rid of the risk of loosing connection. The one connection I do see lost is the importance of time. A webinar is an event you show up and dedicate time to where a video is something you create the time for. I myself have been a procrastinator and know the errors of not creating time in hopes that there will be time later. Therefore a webinar can be helpful in keeping your course on the students mind.

Webinars can be engaging. First prepare a slide show of questions and answers ahead of time. Then during the webinar you can show the question slide to all of the students and have them respond in the chat window. I find most online students will talk more in the chat. Plus it creates a one on one experience where the student can get immediate feedback. No waiting for a test grade or an email. Video on the other hand is useful for that lecture style tutorial. Students can follow along with a better sound and picture quality.

Ask yourself this question when creating content. Does this content need immediate feedback or plenty of review time? The answer will point you to the tool that best suites your needs.

Thursday, February 9, 2012

Reflection on Week 1 in Mobile Apps 2




In this week students learned about adding gestures to their apps. They were walked through an example of creating gestures. After that, they took what they learned and added these features into their existing augmented reality app. Their overlay can now pinch to zoom, rotate, and move to anywhere on the screen you want to position it. They can also swipe to change the image out. Not only did they learn about gestures but they had a great learning experience by cycling through an array of data.

To get the point across about arrays, I found poker chips to be the most effective item to use. I would line up the chips in a row and have them iterate through the chips until the end. The students could see the issue with calling a ++ and getting an item that did not exist. With the poker chips they could physically see where their "if then" statements needed to be checking.

Overall it was a great lesson