This app is my Capstone project for the iOS Developer Nanodegree offered by Udacity. This Nanodegree course focuses on iOS app development using Swift, including UIKit Fundamentals, Networking, and Persistence with Code Data.
FindIt is an iOS app that will identify object using iPhone’s built in camera and provide high confidence suggestions which will auto refresh after 5 seconds. You can view previous suggestions by just swiping up the screen. If you feel suggestion provided by the app is correct and you want to fetch images related to that, you can just tap on suggestion, now you will have whole lot of images from flickr api tagged to that suggestion. As you scroll down in collection, app internally call for next set of images so you don't need to wait. You can select image to have full screen view under which you can save image to app which internally uses core data to save them or you can share that image on social media. you can see saved images when you start the app. or you can just press back button to go back to saved images screen. The details of the screens are as follows:
iOS Frameworks:
- Foundation
- UIKit
- Core Data to store images.
- AVFoundation to grab video from Camera.
- Vision to recognise objects from live video feed.
External Library 6. Kingfisher to load images from network.
The build system uses CocoaPods to integrate dependencies. You should be familiar with CocoaPods and API key and secret from Flickr account.
- Download zip or fork & clone project on your desktop.
- Open Terminal and
cd
into project folder. Most of the times the path will be~/Downloads/FindIt
. - Run
pods install
to install dependencies. - Open
FindIt.xcworkspace
, it will open in Xcode. - Now, Open
Constants.swift
file and put the appropriate keys in it. You can find the keys using this guide - Download the Machine Learning model Resnet50.mlmodel and place it in
<RootProject>/FindIt
directory. To avoid confusion: The model should be place along with the Swift files. - Now you can build and run.
Note: This app uses the camera, so you will have to run it on Real Device. You may need to make changes in the signing certificate.
This project was submitted by Shailesh Aher as part of the iOS Developer Nanodegree At Udacity.
As part of Udacity Honor code, your submissions must be your work, hence submitting this project
as yours will cause you to break the Udacity Honor Code moreover, the suspension of your account.
Me, the author of the project, allows you to check the code as a reference, but if you submit it,
it is your responsibility if you get expelled.
Besides the above notice, the following license applies, and this license notice must be included
in all works derived from this project.
MIT License
Copyright (c) 2018 Shailesh Aher
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.