Beacon - The production of Echo team in the Best Developer Competition of iQiYi.
- 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.
- 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
- 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
- Use
EC
which stands forEcho
as prefix file name to maintain the proper namespace - Use
debugLog
instead ofNSLog
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 importsECUtil
andECConstant
- Please code common functions in
ECUtil
with proper comment - Please code common constant in
ECConstant
with proper comment
- Please code common functions in
- Please code Unit Tests in
CacheTests
、CacheAPITests
、NetworkTests
when codes involving network or cache added
-
Get the IOSPlayerLib provided by iQiYi, and place it in ~/Beacon/Beacon folder, as the photo shows below
-
Excute
pod install
command on the shell -
Open
Beacon.xcworkspace
, click navigator section and openPods Target
-
Set the value
NO
to theProject - Pods - Target - Build Active Architecture Only
, as the photo shows below -
Common + B to link and build the project, and join development with us!
- 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
- 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!
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.