CleanCocoa / Betaexpiration
Licence: mit
Beta period expiration code and window decoration for macOS app development
Projects that are alternatives of or similar to Betaexpiration
Loolia tiny web framework
Stars: ✭ 45 (-11.76%)
Mutual labels: framework
BastSimple but Elegant Web Framework
Stars: ✭ 49 (-3.92%)
Mutual labels: framework
Home Assistant Js🐝 JavaScript implementation of the Home Assistant API using NuclearJS
Stars: ✭ 50 (-1.96%)
Mutual labels: framework
HexmachinaReleases, issues, documentation, website of hexMachina, framework written in Haxe
Stars: ✭ 45 (-11.76%)
Mutual labels: framework
Miraigo TemplateA template for MiraiGo
Stars: ✭ 47 (-7.84%)
Mutual labels: framework
AngelA polished, production-ready backend framework in Dart for the VM, AOT, and Flutter.
Stars: ✭ 1,055 (+1968.63%)
Mutual labels: framework
AplayA Better(Maybe) iOS Audio Stream、Cache、Play Framework
Stars: ✭ 44 (-13.73%)
Mutual labels: framework
Lemon🍋 Minimal and responsive CSS framework for fast building websites.
Stars: ✭ 51 (+0%)
Mutual labels: framework
RoyjsRoyjs is only 4.8kb mvvm framework for React
Stars: ✭ 49 (-3.92%)
Mutual labels: framework
FbbotMinimal framework/SDK for facebook messenger bots. BYOS (Bring Your Own Server)
Stars: ✭ 46 (-9.8%)
Mutual labels: framework
VsalertAn drop-in replacement for UIAlertController with more power and better looks.
Stars: ✭ 48 (-5.88%)
Mutual labels: framework
Cefsharp.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework
Stars: ✭ 8,440 (+16449.02%)
Mutual labels: framework
DanodeSmall and flexible web server written using the D 2.0 language
Stars: ✭ 50 (-1.96%)
Mutual labels: framework
ActivityA PHP API to log anything anywhere
Stars: ✭ 44 (-13.73%)
Mutual labels: beta
PnetHigh level Java network library
Stars: ✭ 49 (-3.92%)
Mutual labels: framework
Rest ControlFramework for testing and validation REST services
Stars: ✭ 51 (+0%)
Mutual labels: framework
MvvmrecurveMVVM框架, 这个架构支持RestFul风格的Api和GraphQL,你可以根据自身需求添加recurve-retrofit2-support库(RestFul)或recurve-apollo-support库(GraphQL)实现相应的支持。 该架构同时使用纯Kotlin开发,但是你也可以在Java中使用它。
Stars: ✭ 51 (+0%)
Mutual labels: framework
Vue Native CoreVue Native is a framework to build cross platform native mobile apps using JavaScript
Stars: ✭ 8,366 (+16303.92%)
Mutual labels: framework
BetaExpiration
Example showing how to implement a usable expiring beta to macOS apps.
Setup
⚠️ It doesn't make sense to put the example setup directly into your project.
That's because you frequently will want to modify BetaExpiration.swift
. The library code has a hard-coded expiration date. You will want to change this with ongoing releases. To make this a Carthage or CocoaPods library would be useless.
There are two variants that'll work:
- You can copy the files from the library over to your project.
- You can check the whole project out (as a git submodule, for example) and include it as a sub-project in your app.
Whatever you do, it's important that you can easily change the expiration date in BetaExpiration.swift
.
Integration
- Hard code a new expiration date in
BetaExpiration.expiresAt
. You can compute the date by running the unit tests and looking at the console output.
- Change the alert in
BetaExpiration.guardExpiration()
to show your e-mail address.
- Call
BetaExpiration.guardExpiration()
from your AppDelegate
. This will display an alert and quit the app if the beta period is over.
-
Optional: Decorate your app window with useful information for your beta testers, see below.
Window decoration
The decoration is achieved by adding a NSTitlebarAccessoryViewController
to the window. The format is as follows:
β v1.2.0 (107) - 23 days left
^ ^ ^
| | |__ = (today - expiration date)
| |
| |__ build number
|
|__ version
You get all of this by calling BetaExpiration.decorate(window:hostBundle:)
. The hostBundle
should be your app's main Bundle
because that'll include version and build number information.
Code License
Copyright (c) 2017-2019 Christian Tietze. Distributed under the MIT License.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at
[email protected].