<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Trent Kocurek</title>
	<atom:link href="http://trentkocurek.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://trentkocurek.wordpress.com</link>
	<description>Urban Coding</description>
	<lastBuildDate>Tue, 12 Jul 2011 02:31:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='trentkocurek.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/6c199aeeded4c7b7767a8e71df0b3620?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Trent Kocurek</title>
		<link>http://trentkocurek.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://trentkocurek.wordpress.com/osd.xml" title="Trent Kocurek" />
	<atom:link rel='hub' href='http://trentkocurek.wordpress.com/?pushpress=hub'/>
		<item>
		<title>iOS4 Map Kit &#8211; Draggable Annotation Views</title>
		<link>http://trentkocurek.wordpress.com/2010/07/21/ios4-map-kit-draggable-annotation-views/</link>
		<comments>http://trentkocurek.wordpress.com/2010/07/21/ios4-map-kit-draggable-annotation-views/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 19:11:11 +0000</pubDate>
		<dc:creator>Trent Kocurek</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Drag and Drop]]></category>
		<category><![CDATA[Draggable Annotation]]></category>
		<category><![CDATA[Draggable PinView]]></category>
		<category><![CDATA[iOS4]]></category>
		<category><![CDATA[Map Kit]]></category>
		<category><![CDATA[Map View]]></category>

		<guid isPermaLink="false">http://trentkocurek.wordpress.com/?p=49</guid>
		<description><![CDATA[The new iOS4 update included many updates to the frameworks in the iPhone SDK. Today I will go through one of those updates which has to do with the Map Kit framework. Support for draggable map annotations is very useful in a location aware application. You will not always have the network connectivity you require [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=49&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 375px"><a href="http://trentkocurek.files.wordpress.com/2010/07/screen-shot-2010-07-21-at-1-41-42-pm.png"><img class="size-full wp-image-87" title="iOS4 Draggable Annotation" src="http://trentkocurek.files.wordpress.com/2010/07/screen-shot-2010-07-21-at-1-41-42-pm.png?w=365&#038;h=523" alt="Main Screenshot" width="365" height="523" /></a><p class="wp-caption-text">Finished Product..</p></div>
<p>The new iOS4 update included many updates to the frameworks in the iPhone SDK. Today I will go through one of those updates which has to do with the Map Kit framework. Support for draggable map annotations is very useful in a location aware application. You will not always have the network connectivity you require to get an exact location for a user and, lets face it, Google does not always return the exact coordinate we desire. This tutorial will step you through creating a View Based application with a standard Map View and dropping a pin on the users current location. The user will then be able to tap and hold the pin to drag around the map. The callout accessory will show the Latitude and Longitude of the new location. Let’s begin.<strong> REMINDER: THESE INSTRUCTIONS ARE FOR iOS4 SDK. WILL NOT WORK WITH EARLIER SDK&#8217;s.</strong></p>
<p><strong><span id="more-49"></span></strong></p>
<p><strong>Step 1</strong> &#8211; Create a new View Based application in XCode. Name is whatever you like. For now on I will refer to your projects name as ProdjectName.</p>
<div id="attachment_83" class="wp-caption aligncenter" style="width: 310px"><a href="http://trentkocurek.files.wordpress.com/2010/07/new-project.png"><img class="size-medium wp-image-83" title="New Project Dialog" src="http://trentkocurek.files.wordpress.com/2010/07/new-project.png?w=300&#038;h=239" alt="New View Based Project" width="300" height="239" /></a><p class="wp-caption-text">New View Based Project</p></div>
<p><strong>Step 2 </strong>- Add MapKit.framework and CoreLocation.framework to the project.</p>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 293px"><a href="http://trentkocurek.files.wordpress.com/2010/07/screen-shot-2010-07-21-at-1-39-19-pm.png"><img class="size-full wp-image-86" title="Frameworks" src="http://trentkocurek.files.wordpress.com/2010/07/screen-shot-2010-07-21-at-1-39-19-pm.png?w=283&#038;h=162" alt="Frameworks Needed" width="283" height="162" /></a><p class="wp-caption-text">Project Frameworks</p></div>
<p><strong>Step 3</strong> &#8211; Open the ProdjectNameViewController.h. Here you will need to add an outlet to the map view and create a CLLocationManager and CLLocation. The CLLocation will keep up with our current location.</p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: @interface ProdjectNameViewController : UIViewController &lt;UIAlertViewDelegate, CLLocationManagerDelegate, MKMapViewDelegate&gt; { 2: IBOutlet MKMapView* myMapView; 3: 4: CLLocationManager* locationManager; 5: CLLocation* currentLocation; 6: } 7: 8: @property (nonatomic, retain) IBOutlet MKMapView* myMapView; 9: 10: @property (nonatomic, retain) CLLocationManager* locationManager; 11: @property (nonatomic, retain) CLLocation* currentLocation; 12: 13: 14: @end </code></pre>
<p>You may want to go ahead and open your ProdjectNameView.xib and hook up the map view to the view controller outlet at this time.</p>
<p><strong>Step 4</strong> &#8211; Open the ProdjectNameViewController.m. You will need to synthesize the newly created variables and create your delegate methods for the Map View and Location Manager. You can see the full code in the attached project.  In the -viewDidLoad method I set the map view and location manager delegates to self, add a few checks for the location services, and start updating to the users current location.</p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: - (void)viewDidLoad { 2: [super viewDidLoad]; 3: 4: [myMapView setMapType:MKMapTypeHybrid]; 5: [myMapView setDelegate:self]; 6: 7: locationManager = [[CLLocationManager alloc] init]; 8: [locationManager setDelegate:self]; 9: [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 10: if(!locationManager.locationServicesEnabled) { 11: UIAlertView *locationServiceDisabledAlert = [[UIAlertView alloc] 12: initWithTitle:@"Location Services Disabled" 13: message:@"Location Service is disabled on this device. To enable Location Services go to Settings -&gt; General and set the Location Services switch to ON" 14: delegate:self 15: cancelButtonTitle:@"Ok" 16: otherButtonTitles:nil]; 17: [locationServiceDisabledAlert show]; 18: [locationServiceDisabledAlert release]; 19: } 20: 21: [locationManager startUpdatingLocation]; 22: } </code></pre>
<p><strong>Step 5</strong> &#8211; Let&#8217;s go ahead and create 2 new files. The first file will be a MKPlaceMark which we will call CurrentLocationAnnotation and the other will be a MKAnnotationView subclass which we can call AnnotationView.</p>
<p><strong>CurrentLocationAnnotation.h</strong>:</p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: #import &lt;MapKit/MapKit.h&gt; 2: 3: @interface CurrentLocationAnnotation : MKPlacemark { 4: 5: } 6: 7: @property (nonatomic, readwrite, assign) CLLocationCoordinate2D coordinate; 8: 9: @property (nonatomic, retain) NSString *title; 10: @property (nonatomic, retain) NSString *subtitle; 11: 12: @end </code></pre>
<p><strong>CurrentLocationAnnotation.m:</strong></p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: #import "CurrentLocationAnnotation.h" 2: 3: 4: @implementation CurrentLocationAnnotation 5: @synthesize coordinate; 6: @synthesize title; 7: @synthesize subtitle; 8: 9: - (id)initWithCoordinate:(CLLocationCoordinate2D)coord addressDictionary:(NSDictionary *)addressDictionary { 10: 11: if ((self = [super initWithCoordinate:coord addressDictionary:addressDictionary])) { 12: // NOTE: self.coordinate is now different from super.coordinate, since we re-declare this property in header, 13: // self.coordinate and super.coordinate don't share same ivar anymore. 14: self.coordinate = coord; 15: } 16: return self; 17: } 18: @end </code></pre>
<p><strong>AnnotationView.h:</strong></p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: #import &lt;MapKit/MapKit.h&gt; 2: 3: @interface AnnotationView : MKAnnotationView { 4: 5: } 6: 7: @property (nonatomic, assign) MKMapView *mapView; 8: 9: @end </code></pre>
<p><strong>AnnotationView.m:</strong></p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: 2: #import "AnnotationView.h" 3: #import "CurrentLocationAnnotation.h" 4: 5: @interface AnnotationView () 6: @property (nonatomic, assign) BOOL hasBuiltInDraggingSupport; 7: @end 8: 9: @implementation AnnotationView 10: @synthesize hasBuiltInDraggingSupport; 11: @synthesize mapView; 12: 13: - (void)dealloc { 14: [super dealloc]; 15: } 16: 17: - (id)initWithAnnotation:(id &lt;MKAnnotation&gt;)annotation reuseIdentifier:(NSString *)reuseIdentifier { 18: 19: self.hasBuiltInDraggingSupport = [[MKAnnotationView class] instancesRespondToSelector:NSSelectorFromString(@"isDraggable")]; 20: 21: if (self.hasBuiltInDraggingSupport) { 22: if ((self = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseIdentifier])) { 23: [self performSelector:NSSelectorFromString(@"setDraggable:") withObject:[NSNumber numberWithBool:YES]]; 24: } 25: } 26: self.canShowCallout = YES; 27: 28: return self; 29: } 30: @end </code></pre>
<p><strong>Step 6 </strong>- Now that we have our annotation view and placemark we can now add these to the map. I add the CurrentLocationAnnotation to the map in the locationManager:didUpdateToLocation:fromLocation method in the ProdjectNameViewController.m like so.</p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: 2: - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 3: { 4: [locationManager stopUpdatingLocation]; 5: if(currentLocation == nil) currentLocation = newLocation; 6: else if (newLocation.horizontalAccuracy &lt; currentLocation.horizontalAccuracy) currentLocation = newLocation; 7: 8: [myMapView setRegion:MKCoordinateRegionMake(currentLocation.coordinate, MKCoordinateSpanMake(0.05f, 0.05f))]; 9: [myMapView setShowsUserLocation:NO]; 10: 11: CurrentLocationAnnotation *annotation = [[[CurrentLocationAnnotation alloc] initWithCoordinate:self.currentLocation.coordinate addressDictionary:nil] autorelease]; 12: annotation.title = @"Drag Me!"; 13: annotation.subtitle = @"Drag pin to get desired location.."; 14: 15: [myMapView addAnnotation:annotation]; 16: } </code></pre>
<p>Now as soon as the application is loaded and we call the [locationManager startUpdatingLocation] this method is called and we drop a pin on the users current location.</p>
<p><strong>Step 7</strong> &#8211; Now we see where the AnnotationView class comes into play. In the Map View&#8217;s viewForAnnotation delegate method in the ProdjectNameViewController.m file we call for an AnnotationView which returns a draggable pin view.</p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: - (MKAnnotationView *)mapView:(MKMapView *)MapView viewForAnnotation:(id &lt;MKAnnotation&gt;)annotation 2: { 3: static NSString * const kPinAnnotationIdentifier = @"PinIdentifier"; 4: MKAnnotationView *draggablePinView = [MapView dequeueReusableAnnotationViewWithIdentifier:kPinAnnotationIdentifier]; 5: 6: if (draggablePinView) { 7: draggablePinView.annotation = annotation; 8: } else { 9: draggablePinView = [[[AnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:kPinAnnotationIdentifier] autorelease]; 10: if ([draggablePinView isKindOfClass:[AnnotationView class]]) { 11: ((AnnotationView *)draggablePinView).mapView = MapView; 12: } 13: } 14: return draggablePinView; 15: } </code></pre>
<p><strong>Step 8</strong> &#8211; Once the users drags the pin, the didChangeDragState delegate method is called to update the latitude and longitude subtitle for the annotation.</p>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;background-image:url('http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif');color:#000000;text-align:left;line-height:20px;padding:0;"><code style="color:#000000;word-wrap:normal;">1: - (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)annotationView didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState 2: { 3: if (oldState == MKAnnotationViewDragStateDragging) { 4: CurrentLocationAnnotation *annotation = (CurrentLocationAnnotation *)annotationView.annotation; 5: annotation.subtitle = [NSString stringWithFormat:@"%f %f", annotation.coordinate.latitude, annotation.coordinate.longitude]; 6: } 7: } </code></pre>
<p><strong>Conclusion</strong> &#8211; This is a very simple implementation of the draggable annotations that iOS4 has released but I feel that this will give you a base to creating a much more functional application with draggable pins. If there are any questions please feel free to comment. If you would like the project files let me know. I cannot post them until I get a dedicated hosting environment. Happy coding!</p>
<p>&nbsp;</p>
<p>Source: https://github.com/t2/overlay_mapper</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trentkocurek.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trentkocurek.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trentkocurek.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trentkocurek.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trentkocurek.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trentkocurek.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trentkocurek.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trentkocurek.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=49&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trentkocurek.wordpress.com/2010/07/21/ios4-map-kit-draggable-annotation-views/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ff119c185fd66188cc3b15bf6e288ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">t2</media:title>
		</media:content>

		<media:content url="http://trentkocurek.files.wordpress.com/2010/07/screen-shot-2010-07-21-at-1-41-42-pm.png" medium="image">
			<media:title type="html">iOS4 Draggable Annotation</media:title>
		</media:content>

		<media:content url="http://trentkocurek.files.wordpress.com/2010/07/new-project.png?w=300" medium="image">
			<media:title type="html">New Project Dialog</media:title>
		</media:content>

		<media:content url="http://trentkocurek.files.wordpress.com/2010/07/screen-shot-2010-07-21-at-1-39-19-pm.png" medium="image">
			<media:title type="html">Frameworks</media:title>
		</media:content>
	</item>
		<item>
		<title>5 Steps to Consider When Pricing Mobile Development</title>
		<link>http://trentkocurek.wordpress.com/2010/07/19/5-steps-to-follow-when-pricing-mobile-application-development/</link>
		<comments>http://trentkocurek.wordpress.com/2010/07/19/5-steps-to-follow-when-pricing-mobile-application-development/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 04:10:45 +0000</pubDate>
		<dc:creator>Trent Kocurek</dc:creator>
				<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[iPhone Apps]]></category>
		<category><![CDATA[iPhone Development Steps]]></category>
		<category><![CDATA[Making Money]]></category>
		<category><![CDATA[Money]]></category>

		<guid isPermaLink="false">http://trentkocurek.wordpress.com/?p=25</guid>
		<description><![CDATA[One of the hardest things to overcome when starting mobile development is how to price your services. I myself had the opportunity to meet with Brian Cauble, a successful mobile developer and co-founder of Appsolute Genius here in Birmingham, to learn the steps he and his team take to price each project and tips that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=25&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://bit.ly/aZhl1l"><img class="aligncenter" title="Monetizing Application Development" src="http://www.shapingyouth.org:8000/wp-content/uploads/2009/06/iPhoneClaw.png" alt="" width="495" height="804" /></a></p>
<div>One of the hardest things to overcome when starting mobile development is how to price your services. I myself had the opportunity to meet with Brian Cauble, a successful mobile developer and co-founder of Appsolute Genius here in Birmingham, to learn the steps he and his team take to price each project and tips that many developers find themselves tripping over.</p>
<p><strong>Step 1 &#8211; Break down the application into small pieces.</strong></p>
<ul>
<li>Most applications that you will build will be multifunctional or at least have a screen with some sort of code behind it. Breaking the application down into small tasks can help in many ways, including:</li>
</ul>
<ol>
<li>Better estimate time and difficulty throughout the development process.</li>
<li>Create checkpoints to work toward.</li>
<li>Give the client more pricing options if the complete application goes above their price range.</li>
</ol>
<p><strong>Step 2 &#8211; Place hours on each of those pieces.</strong></p>
<ul>
<li>Once you have gathered all requirements and have broken the application into small functional parts you will need to think about each of the tasks in detail. Make sure to consider all things when placing a time on the task. You never want to underestimate. I find myself working through a seemingly small task and something unexpected roadblocking me. Always plan for these roadblocks in your estimate.</li>
</ul>
<p><strong>Step 3 &#8211; Always include time for testing.</strong></p>
<ul>
<li>No matter how great of a developer you are you will always need time for testing. This is usually estimated at a lower rate around $40 or $50 an hour.</li>
</ul>
<p><strong>Step 4 &#8211;  Include pricing for designers. </strong></p>
<ul>
<li>A good designer will cost you between $800 &#8211; $1500 depending on the size of the application and the different functions it will include. Make sure to take this into account when coming up with a price.</li>
</ul>
<p><strong>Step 5 &#8211; Set a legitimate price.</strong></p>
<ul>
<li>Prices will vary between developers for obvious reasons. Some will charge more for their greater experience in the field. The most common range I have seen is anywhere from $60 an hour for a developer just starting out to $175 an hour for a experienced developer. Of course some charge more and some charge less, this is just what I have seen.</li>
</ul>
<p>Everyone will have different experiences and find more efficient ways to come up with a price on their own but I feel these are the bare-bone steps that need to be included when trying to set the right price for a job.</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trentkocurek.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trentkocurek.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trentkocurek.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trentkocurek.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trentkocurek.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trentkocurek.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trentkocurek.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trentkocurek.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=25&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trentkocurek.wordpress.com/2010/07/19/5-steps-to-follow-when-pricing-mobile-application-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ff119c185fd66188cc3b15bf6e288ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">t2</media:title>
		</media:content>

		<media:content url="http://www.shapingyouth.org:8000/wp-content/uploads/2009/06/iPhoneClaw.png" medium="image">
			<media:title type="html">Monetizing Application Development</media:title>
		</media:content>
	</item>
		<item>
		<title>Implementing TinyURL in your iPhone App</title>
		<link>http://trentkocurek.wordpress.com/2010/07/08/implementing-tinyurl-in-your-iphone-app/</link>
		<comments>http://trentkocurek.wordpress.com/2010/07/08/implementing-tinyurl-in-your-iphone-app/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 17:55:32 +0000</pubDate>
		<dc:creator>Trent Kocurek</dc:creator>
				<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[tinyurl]]></category>
		<category><![CDATA[url shortener]]></category>

		<guid isPermaLink="false">http://trentkocurek.wordpress.com/?p=20</guid>
		<description><![CDATA[This is a very simple task but I haven&#8217;t seen it documented anywhere. NSURL *url = [NSURL URLWithString:@"http://tinyurl.com/api-create.php?url=www.yoururl.com]; NSString *strUrl = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:nil]; Now use your strUrl pointer wherever you want the shortened URL.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=20&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;">This is a very simple task but I haven&#8217;t seen it documented anywhere.</p>
<p style="text-align:left;padding-left:30px;">NSURL *url = [NSURL URLWithString:@"http://tinyurl.com/api-create.php?url=www.yoururl.com];<br />
NSString *strUrl = [NSString stringWithContentsOfURL:url encoding:NSASCIIStringEncoding error:nil];</p>
<p style="text-align:left;">Now use your strUrl pointer wherever you want the shortened URL.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trentkocurek.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trentkocurek.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trentkocurek.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trentkocurek.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trentkocurek.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trentkocurek.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trentkocurek.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trentkocurek.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=20&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trentkocurek.wordpress.com/2010/07/08/implementing-tinyurl-in-your-iphone-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ff119c185fd66188cc3b15bf6e288ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">t2</media:title>
		</media:content>
	</item>
		<item>
		<title>Stop Double Clicking on ASP.NET Buttons</title>
		<link>http://trentkocurek.wordpress.com/2010/07/08/stop-double-clicking-on-asp-net-buttons/</link>
		<comments>http://trentkocurek.wordpress.com/2010/07/08/stop-double-clicking-on-asp-net-buttons/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 17:45:07 +0000</pubDate>
		<dc:creator>Trent Kocurek</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[double click]]></category>

		<guid isPermaLink="false">http://trentkocurek.wordpress.com/?p=15</guid>
		<description><![CDATA[Users double clicking on a web form submit button can cause many issues. Especially when processing payments for instance. I searched for a good solution to this common problem and came up with a few workarounds but none that suited my needs exactly. I&#8217;ll show you what I did to solve this issue and it works [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=15&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Users double clicking on a web form submit button can cause many issues. Especially when processing payments for instance. I searched for a good solution to this common problem and came up with a few workarounds but none that suited my needs exactly. I&#8217;ll show you what I did to solve this issue and it works just as I need it to.</p>
<p>Here is my test project&#8217;s default page. It includes an asp:Label, asp:Button, asp:TextBox, and an asp:RequiredFieldValidator that will require the user to enter some information into the asp:TextBox.</p>
<p><img src="http://media.tumblr.com/tumblr_kyzsoxYBjy1qb2kks.png" alt="" /></p>
<p>Now that we have our simple page to work with, let&#8217;s create a method to handle the disabling of the button and validation of the textbox. I broke it out into another class for reusability. I called the class ControlUtils.</p>
<p><img src="http://media.tumblr.com/tumblr_kyzsp8a2u11qb2kks.png" alt="" /></p>
<p>As you can see I pass in the control, the name of javascript function that can be called after validation, and the value of the button control while the server-side processing occurs.</p>
<p>Now all we have left is to call this method int the Page_Load method of the CodeFile for the default page.</p>
<p><img src="http://media.tumblr.com/tumblr_kyzspltZ1f1qb2kks.png" alt="" /></p>
<p>If anyone would like me to go into more detail or if you have any questions feel free to ask.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trentkocurek.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trentkocurek.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trentkocurek.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trentkocurek.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trentkocurek.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trentkocurek.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trentkocurek.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trentkocurek.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trentkocurek.wordpress.com&amp;blog=14584175&amp;post=15&amp;subd=trentkocurek&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trentkocurek.wordpress.com/2010/07/08/stop-double-clicking-on-asp-net-buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2ff119c185fd66188cc3b15bf6e288ec?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">t2</media:title>
		</media:content>

		<media:content url="http://media.tumblr.com/tumblr_kyzsoxYBjy1qb2kks.png" medium="image" />

		<media:content url="http://media.tumblr.com/tumblr_kyzsp8a2u11qb2kks.png" medium="image" />

		<media:content url="http://media.tumblr.com/tumblr_kyzspltZ1f1qb2kks.png" medium="image" />
	</item>
	</channel>
</rss>
