For fun/learning I decided to try and replicate Vimeo's Android app. I decided not to use their Android SDK since I wanted to gain expereince using Retrofit/RxJava, as well as handle Oauth2 login myself.
Clone the repository and import the root folder into your IDE (tested on Android Studio). In order for the network calls to work you will need to register as a Vimeo Developer and get your Client ID and Client Secret keys.
From there you will also need to create a new app on the Vimeo developer site, and generate an App Callback Url (required for Oauth2 login).
Once you have these three items, in Android Studio you should add them to your gradle.properties file (project's root folder).
- vimeoClientId = < YOUR-CLIENT-ID >
- vimeoClientSecret = < YOUR-CLIENT-SECRET >
- vimeoOauthRedirect = < YOUR-REDIRECT-URL >
The app was created with a Min SDK Version of 19 and Target SDK Version of 27.
The app is built using an MVP architecture, and uses:
- Retrofit: A type-safe HTTP client for Android and Java
- RxJava: Reactive Extensions for the JVM
- Dagger2: A fast dependency injector for Android and Java
- Butter Knife: Field and method binding for Android views
- Gson: A Java serialization/deserialization library to convert Java Objects into JSON and back
- Glide: An image loading and caching library for Android
- Ability to reply to comments
and comment on videos Ability to follow users/channelsUser logout- A View for Categories (currently in the Explore tab they are unclickable)
Copyright (C) 2018 Armon Khosravi
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.