<?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/"
	>

<channel>
	<title>Apptivity Lab &#187; Research</title>
	<atom:link href="http://www.apptivitylab.com/category/research/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apptivitylab.com</link>
	<description>we make apps!</description>
	<lastBuildDate>Tue, 06 Apr 2010 17:00:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>First Look at Facebook Connect for iPhone</title>
		<link>http://www.apptivitylab.com/2010/04/facebook-connect-for-iphone/</link>
		<comments>http://www.apptivitylab.com/2010/04/facebook-connect-for-iphone/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 16:52:31 +0000</pubDate>
		<dc:creator>jkhong</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.apptivitylab.com/?p=150</guid>
		<description><![CDATA[Had a great meeting today, where one of the points we discussed was whether to create a user registration/authentication system for a new app, or to use Facebook Connect.
While the answer is very much dependent on the objectives of each individual app, the use of Facebook Connect seems to be on the rise. This first [...]]]></description>
			<content:encoded><![CDATA[<p>Had a great meeting today, where one of the points we discussed was whether to create a user registration/authentication system for a new app, or to use Facebook Connect.</p>
<p>While the answer is very much dependent on the objectives of each individual app, the use of Facebook Connect seems to be on the rise. This first look will be an initial investigation into what it is, how to implement and what are the pros and cons of using Facebook Connect for iPhone.</p>
<p><span id="more-150"></span></p>
<h3><img class="alignright" title="Connect With Facebook" src="http://wiki.developers.facebook.com/images/3/36/Connect_with_facebook_iphone.png" alt="" width="176" height="31" />What is it?</h3>
<p>Facebook Connect for iPhone is a Objective-C library that you can include in your app. It handles login, user session, user feed and can be used to call methods in the Facebook API.</p>
<p>You can see it in use in apps here:</p>
<p>1. <a href="http://mashable.com/2009/07/23/facebook-iphone-apps/">10 Fantastic iPhone Apps that use Facebook Connect</a><br />
Notably &#8220;PhoneBook&#8221;, which syncs the iPhone Address Book with Facebook friend&#8217;s profile photos; &#8220;ThisMoment&#8221;, which lets an author posts &#8216;moments&#8217; to his/her Facebook stream.</p>
<p>2. <a href="http://www.insidefacebook.com/2009/03/14/facebook-connect-for-iphone-now-live-first-apps-released/">Facebook Connect for iPhone now like, First apps released</a> (back in 14th March 2009)<br />
&#8220;Who has the biggest brains&#8221; app uses is to share user&#8217;s top scores on Facebook.</p>
<h3>How to use it?</h3>
<p>1. <strong>Create a Facebook application</strong> for your iPhone application. You need to create the FB app, to get an application ID that will be used by your iPhone app. See &#8220;<a href="http://www.raddonline.com/blogs/geek-journal/iphone-sdk-using-facebook-connect-for-iphone-part-1-of-2/">Using Facebook Connect for iPhone</a>&#8220;.</p>
<p>2. <strong>Add FB Connect to Xcode project</strong>. Code currently lives at <a href="http://github.com/facebook/facebook-iphone-sdk/">Github Facebook Connect for iPhone</a>. Also remember to grab the official <a href="http://wiki.developers.facebook.com/index.php/Facebook_Connect_Login_Buttons#Facebook_Connect_for_iPhone_Buttons">FB Connect buttons</a>.</p>
<p>3. <strong>Do interesting stuff</strong> with it. Developer documentations are at <a href="http://wiki.developers.facebook.com/index.php/Facebook_Connect_for_iPhone">http://wiki.developers.facebook.com/index.php/Facebook_Connect_for_iPhone</a>.</p>
<h3>Pros and Cons?</h3>
<p>A custom/internal user management system is not trivial to implement, especially from scratch, and more so if it is not a core feature required for an iPhone app. But if there already is an existing user system, then I guess that should be the clear choice in order to grow the registered user base.</p>
<p>Facebook Connect, on the other hand, provides a &#8220;quick and dirty&#8221; way to manage users. Chances are, most users already have a FB account. Users are probably more comfortable revealing information about themselves to FB than to a relatively unknown web service (well, compared to FB, who isn&#8217;t?). Facebook Connect can also be a first step towards &#8220;social apps&#8221; that take advantage of a user&#8217;s existing friend networks to do interesting stuff.</p>
<p>Some questions left unanswered at this point are:</p>
<p>1. Is there a way to list / manage all the people who have logged in through my application?</p>
<p>2. Can I access additional user demographic information (gender, location, age, etc) through FB Connect?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.apptivitylab.com/2010/04/facebook-connect-for-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protected: One Time Passwords</title>
		<link>http://www.apptivitylab.com/2009/10/one-time-password/</link>
		<comments>http://www.apptivitylab.com/2009/10/one-time-password/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 03:37:13 +0000</pubDate>
		<dc:creator>jkhong</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.apptivitylab.com/?p=114</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://www.apptivitylab.com/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-114">Password:<br />
<input name="post_password" id="pwbox-114" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.apptivitylab.com/2009/10/one-time-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Look at Apple Push Notification Service</title>
		<link>http://www.apptivitylab.com/2009/10/first-look-at-apns/</link>
		<comments>http://www.apptivitylab.com/2009/10/first-look-at-apns/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 02:28:16 +0000</pubDate>
		<dc:creator>jkhong</dc:creator>
				<category><![CDATA[Research]]></category>

		<guid isPermaLink="false">http://www.apptivitylab.com/?p=85</guid>
		<description><![CDATA[I&#8217;ve been looking at several ideas that would be would be needing Apple Push Notification service (APNs). This is going to be my quick research to summarize the state of APNs for current / future projects by Apptivity Lab.
APNs runs on iPhone OS 3.0 to handle:

&#8220;Pushing&#8221; text, sound and badges to an installed application without [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at several ideas that would be would be needing Apple Push Notification service (APNs). This is going to be my quick research to summarize the state of APNs for current / future projects by Apptivity Lab.</p>
<p><span id="more-85"></span>APNs runs on iPhone OS 3.0 to handle:</p>
<ul>
<li>&#8220;Pushing&#8221; text, sound and badges to an installed application without requiring any action from the user.</li>
<li>Even while the application is not currently running on the iPhone OS device.</li>
<li>An application&#8217;s &#8220;background processes&#8221; to be run &#8212; on a server, not the device.</li>
</ul>
<p>Apple has a <a href="http://developer.apple.com/iphone/program/sdk/apns.html">one-page overview</a> of the feature.</p>
<h4>User perspective</h4>
<p>An application can receive text notifications that show as an alert; sound notifications that are played; or a badge notification that adds a number badge to the app icon (like unread emails for Mail). If the application is already running, it may choose to handle the notifications differently.</p>
<p>User&#8217;s can change each push-enabled application&#8217;s settings by going to <strong>Settings &gt; Notifications</strong>. For each push-enable application, user can select whether or not to enable Sounds, Alerts, and/or Badges. There&#8217;s also a setting turn off notifications for all applications.</p>
<p>A device will only receive notifications for/form applications that are <strong>installed</strong> and have been <strong>run at least once</strong> on the device.</p>
<h4>Developer Perspective</h4>
<p>Think of it as a client-server model. Developer deploys the client as an application on the user&#8217;s device. The server uses APNs to push notifications to the device, even if the application is not currently running on the device.</p>
<p>In actual implementation, the server only sends notifications thru the APNs to the device. There isn&#8217;t a direct path from the provider to the device, and it is sent asynchronously. Should the device be offline at the time notification is sent, APNs stores the notification for later delivery. Only 1 notification will be stored per application.</p>
<p>The basic security model is: an application registers itself with APNs on its first launch. The device-application pair is given a &#8220;device token&#8221; by APNs. The application is expected to send the device token to the provider&#8217;s server. With that device token, the provider can communicate with the device thru APNs.</p>
<p>The actual message sent from provider is a JSON object. It can hold a <strong>text message</strong> to be alerted, a <strong>number</strong> to display as a badge on the application icon, or a <strong>sound</strong> name (referencing a system sound or a sound file in the application bundle) to be played. Combinations of the above is possible too.</p>
<p>Apple provides a separate Sandbox and Production APNs. To use them, developers need a SSL cert (available at the iPhone Developer&#8217;s Portal). The SSL cert is to be install on the provider&#8217;s server.</p>
<h4>Requirements</h4>
<ul>
<li>iPhone OS 3.0 or later</li>
<li>Internet connection (wifi, 3G, etc) that allows communication over port 5223</li>
<li>Wifi will only be used if there is no cellular data connection</li>
<li>While on wifi, device will only receive notifications if the device is plugged in or if the device display is on.</li>
</ul>
<p><strong>My Questions</strong></p>
<ol>
<li>Can I push sounds dynamically to the device?<br />
No. &#8220;Pushing&#8221; a sound is actually pushing the filename of a sound file within your application bundle. Scrap the thought of pushing&#8230;. voice mails (example). Fart-Push however, will work. I dread the day Fart apps get Push functions.</li>
<li>How reliable is Push Notifications &#8212; rather, under what conditions will APNs not be able to push?</li>
<li>If I remove an application, will I still receive push notifications for that app?<br />
No. The device will refuse the notification if the target application has been uninstalled. APNs has a feedback service to inform the providers which devices are refusing the notifications, so that it can stop sending to that device.</li>
<li>How long does APNs store notifications for offline devices?<br />
Not sure at this point.</li>
</ol>
<h3>References</h3>
<p>developers.apple.com: <a href="http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008194-CH1-SW1">Apple Push Notification Service Programming Guide</a></p>
<p>mobileorchard.com: <a href="http://www.mobileorchard.com/the-hidden-costs-of-apples-push-notification-service/">The Hidden Costs of Apple&#8217;s Push Notification Service</a></p>
<p>arstechnica.com: <a href="http://arstechnica.com/web/news/2009/04/the-problem-with-push-can-small-developers-afford-it.ars">The problem with push: can small developers afford it?</a></p>
<p>highscalability.com: <a href="http://highscalability.com/blog/2008/6/9/apples-iphone-to-use-a-centralized-push-based-notification-a.html">Apple&#8217;s iPhone to use a centralized push based notification architecture</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.apptivitylab.com/2009/10/first-look-at-apns/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
