{"id":330,"date":"2011-09-27T16:51:04","date_gmt":"2011-09-27T20:51:04","guid":{"rendered":"http:\/\/www.craigperler.com\/blog\/?p=330"},"modified":"2024-06-06T23:26:15","modified_gmt":"2024-06-07T03:26:15","slug":"geodate","status":"publish","type":"post","link":"https:\/\/www.craigperler.com\/blog\/2011\/09\/27\/geodate\/","title":{"rendered":"GeoDate"},"content":{"rendered":"\n<p>When Android first came out, there was no mobile version of match.com or Facebook. In turn, I thought, wouldn&#8217;t be cool if there was a location-based profile matching application for the phone?  And so the idea of GeoDate was born.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_login.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"572\" src=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_login.png?resize=807%2C572&#038;ssl=1\" alt=\"\" class=\"wp-image-331\" title=\"geodate_login\" srcset=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_login.png?w=807&amp;ssl=1 807w, https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_login.png?resize=300%2C212&amp;ssl=1 300w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<p>Each user gets an associated profile describing basic attributes about themselves as well as the types of people they want to meet. Via a background process, users could opt to enable tracking whereby the phone would periodically inform a central server of its location, and based on a current location and user-defined radius, users could display a map visualizing where nearby people of interest are located and then provide access to those found profiles.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_perlerc.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"572\" src=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_perlerc.png?resize=807%2C572&#038;ssl=1\" alt=\"\" class=\"wp-image-332\" title=\"geodate_perlerc\" srcset=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_perlerc.png?w=807&amp;ssl=1 807w, https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_perlerc.png?resize=300%2C212&amp;ssl=1 300w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<p>There were a bunch of interesting technical hurdles at the time. For example, in the above screenshot, the interactive tree-list was not a custom control; invoking SOAP calls from the Java subset used by Android required tweaking the ksoap library, and I implemented a generic client-side dispatcher for making server calls, one that used custom annotations and reflection &#8211; it was elegant for what it was.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_splash.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"572\" src=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_splash.png?resize=807%2C572&#038;ssl=1\" alt=\"\" class=\"wp-image-333\" title=\"geodate_splash\" srcset=\"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_splash.png?w=807&amp;ssl=1 807w, https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_splash.png?resize=300%2C212&amp;ssl=1 300w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/a><\/figure>\n\n\n\n<p>I had a whole bunch of other ideas about what this app good do; but, at the time, even a basic app might have been competitive as there was nothing location-based like this available yet. Since then, match has developed a mobile application, and social networking has exploded making it much easier to find people on other platforms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When Android first came out, there was no mobile version of match.com or Facebook. In turn, I thought, wouldn&#8217;t be cool if there was a location-based profile matching application for&hellip;<\/p>\n","protected":false},"author":1,"featured_media":331,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[46],"tags":[],"powerkit_post_featured":[],"class_list":{"0":"post-330","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-projects"},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.craigperler.com\/blog\/wp-content\/uploads\/2011\/10\/geodate_login.png?fit=807%2C572&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/s1SwZ6-geodate","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/posts\/330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/comments?post=330"}],"version-history":[{"count":5,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/posts\/330\/revisions"}],"predecessor-version":[{"id":1754,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/posts\/330\/revisions\/1754"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/media?parent=330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/categories?post=330"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/tags?post=330"},{"taxonomy":"powerkit_post_featured","embeddable":true,"href":"https:\/\/www.craigperler.com\/blog\/wp-json\/wp\/v2\/powerkit_post_featured?post=330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}