Ecno alternatives and similar libraries
Based on the "Tools" category.
Alternatively, view Ecno alternatives based on common mentions on social networks and blogs.
-
SwiftGen
The Swift code generator for your assets, storyboards, Localizable.strings, โฆ โ Get rid of all String-based APIs! -
Lona
A tool for defining design systems and using them to generate cross-platform UI code, Sketch files, and other artifacts. -
Xcodes.app
The easiest way to install and switch between multiple versions of Xcode - with a mouse click. -
FBSimulatorControl
idb is a flexible command line interface for automating iOS simulators and devices -
GDPerformanceView-Swift
Shows FPS, CPU and memory usage, device model, app and iOS versions above the status bar and report FPS, CPU and memory usage via delegate. -
AppDevKit
AppDevKit is an iOS development library that provides developers with useful features to fulfill their everyday iOS app development needs. -
iSimulator
iSimulator is a GUI utility to control the Simulator, and manage the app installed on the simulator. -
Blade
Better asset workflow for iOS developers. Generate Xcode image catalogs for iOS / OSX app icons, universal images, and more. -
Realm Browser
DISCONTINUED. DEPRECATED - Realm Browser for Mac OS X has been replaced by realm-studio which is cross platform. -
Cookiecutter
DISCONTINUED. A template for new Swift iOS / macOS / tvOS / watchOS Framework project ready with travis-ci, cocoapods, Carthage, SwiftPM and a Readme file -
SuperDelegate
DISCONTINUED. SuperDelegate provides a clean application delegate interface and protects you from bugs in the application lifecycle -
abandoned-strings
Command line program that detects unused resource strings in an iOS or OS X application. -
AVXCAssets-Generator
AVXCAssets Generator takes path for your assets images and creates appiconset and imageset for you in just one click
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Ecno or a related project?
Popular Comparisons
README
By Xmartlabs SRL.
Introduction
Ecno was inspired by Once Android library. It's a task state manager built on top of UserDefaults in pure Swift 4. This abstraction allows you to mark 'tasks' as done, 'to-do' and check for those states.
Ecno is ideal for:
- Show tutorials once within the application.
- Perform certain task periodically.
- Trigger a task based on a user action.
Usage
First you need to initialize it:
Ecno.initialize()
Note: you should initialize it when your app gets launched.
Then, you can check whether a task was done by:
if !Ecno.beenDone("task") {
//...
Ecno.markDone("task")
}
Also, you can check for specific requirements about a certain task:
if Ecno.beenDone("task", scope: .appSession, numberOfTimes: .moreThan(3)) {
// do stuff
}
or
if Ecno.beenDone("task", scope: .since(20.minutes), numberOfTimes: .lessThan(3)) {
// do stuff
}
Additionally, you can program a 'to do' task by:
Ecno.toDo("show banner", scope: .until(3.hours), info: ["name": "bannerName"])
and then query if you need to do that task:
if Ecno.needToDo("show banner") {
let info = Ecno.infoForToDo("show banner") // ["name": "bannerName"]
// ...
}
Task
Any type conforming to the Task
protocol. Since it would be the most common case, the String
type already conforms to Task
.
public protocol Task {
var tag: String { get }
}
Scope
Scopes represents periods of time within the application.
.appInstall
This period represents all times for the application..appVersion
Period starting when the current version of the app was installed..appSession
Period starting when the application was launched..since(TimeInterval)
Period starting sinceTimeInterval
time ago from now. For instance,.since(2.days)
.until(TimeInterval)
Period valid untilTimeInterval
from now. For instance,.until(3.hours)
. This should be useful to set a 'to do' task that expires.
Functions
func toDo(_ task: Task, scope: Scope? = nil, info: [AnyHashable: Any]? = nil)
Marks a task as 'to do' within a given scope, if it has already been marked as to do or been done within that scope then it will not be marked. If the scope is nil, then it will be marked as to do anyways.func needToDo(_ task: Task) -> Bool
Checks if a task is currently marked as 'to do'.func infoForToDo(_ task: Task) -> [AnyHashable: Any]?
Gets the info associated with a 'to do' task. (only if you provided it in thetoDo(...)
function)func lastDone(_ task: Task) -> Date?
Last done timestamp for a given task.func beenDone(_ task: Task, scope: Scope = .appInstall, numberOfTimes: CountChecker = .moreThan(0)) -> Bool
Checks if a task has been done with the given requirements.func markDone(_ task: Task)
Marks a task as done.
Requirements
- iOS 8.0+
- Swift 4.0+
- Xcode 9.0+
Getting involved
- If you want to contribute please feel free to submit pull requests.
- If you have a feature request please open an issue.
- If you found a bug or need help please check older issues
Before contribute check the CONTRIBUTING file for more info.
If you use Ecno in your app We would love to hear about it! Drop us a line on twitter.
Examples
Follow these 3 steps to run Example project:
- Clone Ecno repository
- Open Ecno workspace and run the Example project.
Installation
CocoaPods
CocoaPods is a dependency manager for Cocoa projects.
To install Ecno, simply add the following line to your Podfile:
pod 'Ecno', '~> 3.0'
Carthage
Carthage is a simple, decentralized dependency manager for Cocoa.
To install Ecno, simply add the following line to your Cartfile:
github "xmartlabs/Ecno" ~> 3.0
Author
Change Log
This can be found in the [CHANGELOG.md](CHANGELOG.md) file.
*Note that all licence references and agreements mentioned in the Ecno README section above
are relevant to that project's source code only.