Giter Site home page Giter Site logo

ios-rcl's Introduction

ios-rcl

The iOS Reusable Component Library is a collection of classes aimed to make development for iOS an easier task.

The library tries to solve a number of issues that constantly arise during development.

The libary is still under heavy development but is expected to have a rapid progress.

There are a number of goals that will be pursued in developing this library:

  • write clean, understandable code that minimizes need for customizations, but make customizing a breeze
  • document all source code using Doxygen style comments
  • cover the code as much as possible using unit testing

Components

RCLAsyncImageView

An asynchronous image view that allows the loading of remote images in background. The images can be cached to disk using the RCLCache class.

This class depends on the RCLAsyncDownloader class to download the image data.

RCLAsyncImageButton

not implemented yet

A button class that can load its state-dependent images from remote URLs. This class is similar in dependencies with the RCLAsyncImageView class.

RCLGallery

A gallery class that allows the user to browse through a list of images.

RCLImageViewer

not implemented yet

A full screen image viewer similar to the default image library viewer from iOS.

RCLTableViewController

An enhanced table view controller that eases the use of often requested enhancements:

  • pagination
  • text filtering
  • basic NSArray data source
  • indexed sections

The pagination functionality may be stripped out of this view controller and implemented in a separate class which extends RCLTVC.

RCLRefreshTableViewController

An enhanced table view controller that implements pull to refresh functionality.

RCLMapController

*not implemented yet *

The RCLMapController allows the display of thousands of POIs at a time without slowing down the app noticeably or ramping up the memory consumption to mem warning levels by clustering the pins together.

Backbone classes

The reusable components depend on a number of backbone classes to do their job properly.

RCLAsyncDownloader

An asynchronous downloader singleton class that allows a configurable number of simultaneous requests to execute in parallel. The requests are executed from an NSOperationQueue with a configurable number of simultaneous connections.

This class can be useful in throttling the number of requests that are started at a given time. Although the remote data is being fetched asynchronously starting a too greater number of requests will bog down your application.

RCLAsyncImageView and RCLAsyncImageButton rely on this class.

RCLCache

A disk cache singleton class that allows storing NSData objects to disk. At the moment there is no way of managing the lifetime of a cached objects but that is a feature that is going to be implemented. RCLAsyncImageView/Button can use this cache to load images from disk rather than downloading them all together again.

RCLMemoryCache

A memory cache singleton class that allows storing objects to memory. RCLAsyncImageView/Button can use this memory cache to quickly access objects that are already loaded in memory. This can be very useful in implementing fast, lazy-loading table views that need to be high-performance.

Objects stored in the memory cache don't get jettisoned unless manually requested. It is recommended that on applicationDidReceiveMemoryWarning the memory cache's removeAllObjects method be called to free up existing objects.

ios-rcl's People

Contributors

alinradut avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.