Skip to content
This repository has been archived by the owner on Nov 6, 2019. It is now read-only.
/ Beacon Public archive

The production of Echo team in the Best Developer Competition of iQiYi.

License

Notifications You must be signed in to change notification settings

SeaHub/Beacon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beacon

Supporter Architecture Backend Dependency License Platform IDE Language Device

Introduction

Beacon - The production of Echo team in the Best Developer Competition of iQiYi.

中文文档

Backend Document(后端文档)Here

Beacon

App-1

App-2

App-3

Feature Overview

Page Feature

  • Sliding smoothly on Home Page(Supporting drawing card from the middle and playing video randomly)
  • Beautiful favorite and history page with sense of depth
  • Video Player with full-screen, muting, light-closing functions, besides, volume and brightness can be set by swiping the screen on the phone.

Function Feature

  • Shaking in the video page may transform the player into full-screen state quickly
  • Double-Clicked the video page may close light quickly
  • Use 3D Touch outside the app may play a video randomly
  • Local notification will be received when the data updates (every 24 hours)
  • Reload button will be shown on the home page while network breaking

Development Feature

  • Use UNNotification to realize local notification
  • Use YYCache to realize memory-cache and disk-cache
  • Use Keychain to realize the unique UUID saving and getting. UUID is useful in the app, which is used to call the api of favorite and history function
  • Use UITableView + UIView Animation to realize animations in the app

Join developing

Project Specification

  • Use EC which stands for Echo as prefix file name to maintain the proper namespace
  • Use debugLog instead of NSLog when debugging
  • Use _ as prefix with private methods
  • Use a tab standing for 4 space, the tail bracket and the lower camel case naming specification
  • Use ECBeacon-Prefix.pch as pre compile header, which imports ECUtil and ECConstant
    • Please code common functions in ECUtil with proper comment
    • Please code common constant in ECConstant with proper comment
  • Please code Unit Tests in CacheTestsCacheAPITestsNetworkTests when codes involving network or cache added

Preparation for development

  1. Get the IOSPlayerLib provided by iQiYi, and place it in ~/Beacon/Beacon folder, as the photo shows below

    SettingA

  2. Excute pod install command on the shell

  3. Open Beacon.xcworkspace , click navigator section and open Pods Target

  4. Set the value NO to the Project - Pods - Target - Build Active Architecture Only, as the photo shows below

    SettingB

  5. Common + B to link and build the project, and join development with us!

Directory Structure

  • View + Main.storyboard:Views of app
  • Model:Models of app
  • Controller:Controller of app
  • Others
    • Category:Some extension method to the apple
    • Tools
      • UNNotification:Wrapper of UNNotification, use it to send local notification
      • Cache:Wrapper of Cache, use it to save and get from cache
      • Util:Commond tools, please code common functions in ECUtil with proper comment
      • Keychain:Wrapper of Keychain,use it to save and get from keychain
    • Network:Wrapper of network api
    • BeaconTests
      • CacheTests:Unit test of lower cache api
      • CacheAPITests:Unit test of higher cache api
      • NetworkTests:Unit test of network api

Third Party Library used in the app

  • QYPlayer:Use on the player
  • IQActivityIndicatorView:Use to indicate 'Loading'
  • CCDraggableCard:Use to layout the home page
  • Masonry:Use to layout views
  • SDWebImage:Use to load photos
  • YYCache:Use to cache datas on both memory and disk
  • AFNetworking:Use to send request and get response on the net

Thanks to all the selfless authors above!

GNU General Public License v3.0

Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.

About

The production of Echo team in the Best Developer Competition of iQiYi.

Resources

License

Stars

Watchers

Forks

Packages

No packages published