{"id":192,"date":"2011-04-05T10:24:07","date_gmt":"2011-04-05T08:24:07","guid":{"rendered":"http:\/\/www.smartersoftware.de\/wordpress\/2011\/04\/duplicates-in-address-book-some-progress-on-my-next-iphone-app\/"},"modified":"2011-04-05T10:24:07","modified_gmt":"2011-04-05T08:24:07","slug":"duplicates-in-address-book-some-progress-on-my-next-iphone-app","status":"publish","type":"post","link":"http:\/\/www.smartersoftware.de\/wordpress\/2011\/04\/duplicates-in-address-book-some-progress-on-my-next-iphone-app\/","title":{"rendered":"Duplicates in Address Book: Some Progress on my next iPhone App"},"content":{"rendered":"<p>After trying out a few things during my last train rides to my consulting engagement, my next iPhone app is slowly taking shape.<\/p>\n<h2>Development progress<\/h2>\n<p>Here is a very rough, \u201cin work\u201d screenshot of what I have for now (using some test data):<\/p>\n<p align=\"center\"><a href=\"http:\/\/www.smartersoftware.de\/wordpress\/wp-content\/pics\/Progress-on-iPhone-App_8730\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline\" title=\"image\" alt=\"image\" src=\"http:\/\/www.smartersoftware.de\/wordpress\/wp-content\/pics\/Progress-on-iPhone-App_8730\/image_thumb.png\" width=\"206\" height=\"400\" \/><\/a><\/p>\n<p>Each cell in the TableView represents the contacts in the address book. The number in braces shows how \u201csimilar\u201d another contact record is. (The number shown is for the \u201cclosest\u201d record.) I want to make things a bit easier to spot by coloring the cells (e.g. red = 100% match, yellow between 90 and 100% match). I\u2019ll also add some way to filter the displayed records (i.e. display only records above a certain threshold).<\/p>\n<p>In the detail view, I want to display the \u201cclosest\u201d records for one address and provide some way to look at the details of the involved contacts. (As this might require quite some back and forth between the different contact records, an iPad with additional screen estate may be a good idea here.) The detail view should also have some functionality to \u201cremove\u201d unwanted records (duplicates) or \u201cmerge\u201d two records (collect all different phone numbers, email addresses etc. into one contact record and remove the other one).<\/p>\n<p>Obviously, there is still a lot of work to do, but I\u2019m making some progress. While I\u2019m still looking for a good name, I already have an icon for the app: <a href=\"http:\/\/www.smartersoftware.de\/wordpress\/wp-content\/pics\/Progress-on-iPhone-App_8730\/colored_background_clear_glass_512.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px\" title=\"colored_background_clear_glass_512\" border=\"0\" alt=\"colored_background_clear_glass_512\" src=\"http:\/\/www.smartersoftware.de\/wordpress\/wp-content\/pics\/Progress-on-iPhone-App_8730\/colored_background_clear_glass_512_thumb.png\" width=\"104\" height=\"104\" \/><\/a><\/p>\n<h2>Emerging Tiers<\/h2>\n<p>I\u2019m also getting a clearer picture of which different modules I can offer:<\/p>\n<ul>\n<li>Comparison \u2013 reading the address book and figuring out which records are close<\/li>\n<li>Removing exact duplicates \u2013 Often, there are exact duplicates in the address book (for example after some technical problems with synching). These should be relatively simple to identify and delete.<\/li>\n<li>Merging contact records \u2013 This is a lot more complicated as there are quite a few different scenarios. For example, you have to pick a \u201csurviving\u201d name (as there can be only one name), but there can be multiple addresses, phone numbers or email addresses. <\/li>\n<li>Standardization \u2013 For some fields, different content can mean the same thing, e.g. \u201c1231234567\u201d is the same phone number as \u201c123 123 4567\u201d or \u201c(123) 123-4567\u201d or \u201c+1-123-123 4567\u201d. I\u2019m not sure how much there can be done here, especially in addresses (Memory Lane = Memory Ln). <\/li>\n<li>Once I get started, there\u2019ll probably be more modules that make sense in the given context.<\/li>\n<\/ul>\n<p>However, this looks like a good way to provide different tiers of the app:<\/p>\n<ul>\n<li>entry level (low cost, maybe even free) \u2013 just offering the base comparison module<\/li>\n<li>mid level \u2013 comparison plus dealing with exact duplicates<\/li>\n<li>pro level \u2013 all modules as outlined above<\/li>\n<\/ul>\n<p>This will also be a good scenario for \u201cin app purchases\u201d that I want to look into.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After trying out a few things during my last train rides to my consulting engagement, my next iPhone app is slowly taking shape. Development progress Here is a very rough, \u201cin work\u201d screenshot of what I have for now (using some test data): Each cell in the TableView represents the contacts in the address book. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,32],"tags":[],"class_list":["post-192","post","type-post","status-publish","format-standard","hentry","category-dataquality","category-ios"],"_links":{"self":[{"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/comments?post=192"}],"version-history":[{"count":0,"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/posts\/192\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/media?parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/categories?post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.smartersoftware.de\/wordpress\/wp-json\/wp\/v2\/tags?post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}