Skip to content

genry86/GithubSearch

Repository files navigation

Github Trends

Searches for github projects which have biggest stars and also shows how many time times they were forked.

Development languages

Swift

Supported platforms

iPhone

Supported orientations

  • Landscape
  • Portrait

Supported localization

  • English
  • Spanish

Supported patters

  • MVC - General UI architecture
  • MVVM - Architecture based on binding of properties inside specific ViewModels between Views and Models
  • Low Coupling - To support low dependency, low change impact, and increased reuse. Implemented using Protocols

Used Pods

  • ReactiveCocoa - Used to have Binding approach in scope of MVVM architecture
  • SnapKit - Used to setup auto-layout constrains in easy way
  • UIColor_Hex_Swift - Used to create UIColors from Hex string e.g. "#ff0000"
  • ionicons - Used to fetch "Stars" and "Forks" icons
  • BadgeSegmentControl - Custom SegmentControl to have segment with icons/texts at the same time

Notes

  • UI design - Basically, all UI elements could be created using Storyboard or NIBs files, but for best performance reasons and simply as example UI views have been generated from code using SnapKit pod, which is pretty simple to use. Also, in details controller, View with elements is separated to have clear picture of responsibilities.

  • Extensions - To have less code and clear as possible methods, customization functionality of used controls moved to extension. String, Data, URLRequest common code also moved to extensions.

  • Constants - To easily manage static values, all of them moved and structured to separate file with nested structs.

  • Services - Used to store and manage Models

  • AppDelegate - Used as holder of main global services

  • Navigation - class. Used to encapsulate navigation logic based on type of ViewModels

Repos

Details

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages