PhotographyApp

PhotographyApp

Screenshots

PhotographyApp

PhotographyApp

PhotographyApp

PhotographyApp

PhotographyApp

PhotographyApp

PhotographyApp

PhotographyApp

📔 Introduction

PhotographyApp is a reference application for HMS Kits to phones running with the android based HMS Service. PhotographyApp basically is an app which has everything you could want from a photo app. It can separate your photos by tags thanks to ML kit feature. It can cluster your photos based on locations and you will be able too see that clusters on the map. You can display that clustered photos by click on cluster and it display the photos in order by date. It displays all photos from gallery and after click a photo you can edit that photo and you can save it to gallery. You can share that photo too. Apart from all these good features, the feature which we are proud of you can create a space for sharing photos. In these space you will be define title and description and you can select users to share. You can select ANY user who is using the app. After the selection the space will be created and in this space, you will be able to select photos by clicking select photo. You can select photo from files and gallery. The page also displays recent images on phone.

📱 Features

Image Classification


our app can separate your photos by tags and you can display all photos which has same tags.

Location Based Photo Displaying


and our colleague’s library 100K Clustered Markers with Huawei Map! 😱 PhotographyApp can display photos on map with clustering. By this way you can easily find your photos which where they were taken and display it. When clicked the cluster you can display the photos by date.

Display Photos On The Device and Image Editing


, you can edit the chosen photo. Also you can share the edited photo.

Sharing Space


you can create a space which you can share photos. For doing that, you need to declare a title and description for your space, after that declaration you need to choose persons with whom to share it. You can choose anyone who is using the PhotographyApp.

💻 Tech Stack & Used Kits

PhotographyApp is designed with MVVM (Model-View-ViewModel), Repository design patterns and Kotlin is used for development.

Used Kits

HUAWEI AUTH SERVICEHUAWEI MAP KITHUAWEI MACHINE LEARNING KITHUAWEI CLOUD DBHUAWEI IMAGE KIT

Tech Stack

Hilt (DI)Architecture Components (DataBinding, ViewModel, LiveData)CoroutinesFlowJetpack Navigation componentGlideRoom DBMaterial DesignEXIF InterfaceSafe Args

Try the App – What You Will Need

  • A computer that can run Android Studio.

  • An android device with Hms Core installed and OS version Android 7 or higher (minSdk is API 24)

  • Fork this repo by clicking top right and clone it to your computer.

  • You need to AGConnect-Services.json file to run this project properly. Follow the below steps to obtain it.

    User Photos PhotoDetail PhotoDetail2

  • You need to client id and client secret to obtain an access token from Account Kit via OAuth-based authentication. Get this information under Project Settings => General Information => App information => OAuth 2.0 client ID section and add them into app level build.gradle file.

  • You need to app id for Search Kit . Take the “app_id” value from the agconnect-services.json file and set it to the AGC_APP_ID_VALUE value in the application level build.gradle file.

  • You need to add the API key for using ML Kit on cloud services Take the “api_key” value from the agconnect-services.json file and set it to the API_KEY_VALUE value in the application level build.gradle file.

  • Solution of some issues you might be faced

Sonarqube Report ✅

PhotographyApp

P.S.: We are aware we have code smells according to sonarqube report. The reason of these in Cloud DB our naming can’t pass the sonarqube. We will fix this issues in next version.

Contributors

License

 Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

GitHub

View Github