iOS APP开发项目案例(仿探探优化)--FaceFriend

本文介绍了一款名为FaceFriend的iOS应用开发案例,主要功能包括美颜相机、相册分类管理和社交功能。开发过程中使用了腾讯优图的人脸识别和图片标签API,实现了照片的自动分类和用户画像。应用还包含了自定义相机、相册管理、用户定位、数据存储以及第三方SDK集成,如友盟分享和融云聊天。作者分享了开发过程中的关键技术点和难点,提供了源码下载链接。
摘要由CSDN通过智能技术生成

源码请到Github上下载Github源码

ios开发的基本知识:OC语言基础、Foundation基础框架、各个控件的UI界面编程(UITableView、UINavigationController、UITabBar、UIButton、UILabel、UIImageView、UIScrollView、UITextField等)、图形图像与动画、多点触摸与手势检测(响应者链、点击手势UITapGestureRecognizer、捏合手势UIPinchGestureRecognizier、旋转手势UIRotationGestureRecognizer、轻扫手势UISwipeGestureRecognizer、拖动手势UIPanGestureRecognizer)、程序的国际化、数据存储与IO、多媒体应用开发、加速度计与陀螺仪使用、多线程编程(NSThread、GCD、NSOperation与NSOperationQueue、线程安全与同步)、iOS 网络编程(XML和JSON解析、AFNetworking、ASIHTTPRequest等)定位于地图(CoreLocation、MapKit)等。

期间经历了在公司三个多月的iOS开发实习,学习了很多iOS 开发的实战经验,帮助开发了某APP的地图定位、骑行轨迹、、骑行数据记录、照片滤镜美化等功能的开发。从八月份起,笔者开始根据自己的一个想法开发一款真正的自己的APP,以深化开发的基础及增加实际的iOS开发经验。

APP的主要功能有三点:

1.美颜相机;2.相册分类管理;3.基于相册分类、用户标签及用户行为的人物画像的社交功能。

APP的设计思路是:

1.首先用户注册时必须上传一张自己的人脸照片,照片的人脸识别使用腾讯优图的优图人脸检测API,并且每个用户设置自己的兴趣标签;

2.其次获取每个用户手机相册里的照片,使用腾讯优图的图片标签识别API,将用户的照片上传至优图服务器,返回用户照片信息进行分类,建立手机照片分类管理工具,并且在APP后台建立云相册,便于用户照片管理与保存;

3.开发自定义的相机,实现美颜等功能;

4.根据用户的信息、标签、照片信息在后台建立用户画像,基于用户的地理位置,推荐位置相近并且画像相似的用户给本用户,方便进一步的社交。

笔者目前的开发过程如下,后期将不断更新:


1.自定义TabBarVC,建立四个Nav及对应的四个rootVC:四个主页面的VC。这里需要对于初次开发者来说,需要注意的就是UITableBarController的每个标签的控制器最好使用UINavigationController,因为如果直接使用UIViewController的话,后面二级之后的页面仍然会有UITableBar在底部,一般的APP不需要这样的功能,当然,比如像知乎就使用了这个功能;还有就是关于状态栏及导航栏的问题。(可参考:导航控制器与标签控制器状态栏导航栏问题iOS导航控制器和标签栏控制器的结合)。代码如下:


{
    if (!self)
    {
        self=[super init];
    }
    SZFaceFriendVC* faceFriendVC=[[SZFaceFriendVC alloc] init];
    UINavigationController* faceFriendNav=[[UINavigationController alloc] initWithRootViewController:faceFriendVC];
    UITabBarItem* faceFriendItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"FaceFriend", nil) image:nil tag:0];
    faceFriendNav.tabBarItem=faceFriendItem;
    faceFriendNav.navigationBar.translucent = NO;
    
    SZPhotoGraphVC* photoGraphVC=[[SZPhotoGraphVC alloc] init];
    UINavigationController* photoGraphNav=[[UINavigationController alloc] initWithRootViewController:photoGraphVC];
    UITabBarItem* photoGraphItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"TakePhoto", nil) image:nil tag:0];
    photoGraphNav.tabBarItem=photoGraphItem;
    photoGraphNav.navigationBar.translucent = NO;
    
    SZAlbumVC* albumVC=[[SZAlbumVC alloc] init];
    UINavigationController* albumNav=[[UINavigationController alloc] initWithRootViewController:albumVC];
    UITabBarItem* albumItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Album", nil) image:nil tag:0];
    albumNav.tabBarItem=albumItem;
    albumNav.navigationBar.translucent = NO;
    
    SZMeVC* meVC=[[SZMeVC alloc] init];
    UINavigationController* meNav=[[UINavigationController alloc] initWithRootViewController:meVC];
    UITabBarItem* meItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Me", nil) image:nil tag:0];
    meNav.tabBarItem=meItem;
    meNav.navigationBar.translucent = NO;
    // 设置UITabBar背景图片
    self.v
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值