• Stars
    star
    437
  • Rank 95,874 (Top 2 %)
  • Language
    Swift
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An opinionated starting point for awesome, reusable Swift 5 modules

Swift 5 Module Template

Use this template as a starting point for any Swift 5 module that you want other people to include in their projects.

STATUS: This template is ready and works in production code, compatible with Xcode 15.2 (15C500b)

Swift 5 Module directory layout

Features

Your new Swift 5 module will immediately have working, compilable code, and implement these best practices:

  • Ability to be used from Swift Package Manager
  • Clean folder structure
  • MIT license
  • Testing as a standard
  • Turnkey access to GitHub Actions testing
  • Semantic versioning and a CHANGELOG
  • Included example/demo app using SwiftUI
  • Use a Xcode project to manage your code

How to use this

Clone or download a release and run the ./configure.rb program. It will ask you some questions and generate a project.

You then add all the interesting features you want your module to have.

Automating the configure script

To skip interactive prompts in the ./configure script, use these environment variables:

Template variable Environment variable
__PROJECT_NAME__ SMT_PROJECT_NAME
__ORGANIZATION NAME__ SMT_ORGANIZATION_NAME
com.AN.ORGANIZATION.IDENTIFIER SMT_COM_AN_ORGANIZATION_IDENTIFIER
__AUTHOR NAME__ SMT_AUTHOR_NAME
__TODAYS_DATE__ SMT_TODAYS_DATE
__TODAYS_DATE__ (date format) SMT_DATE_FORMAT_STRING Note: this will ask you for today’s date but it will use this format in the template.
__TODAYS_YEAR__ SMT_TODAYS_YEAR
__GITHUB_USERNAME__ SMT_GITHUB_USERNAME

For example, you may use: export SMT_ORGANIZATION_NAME='Awesome Org' before running ./configure.

How it works

graph LR
    subgraph Contributors to this project
    X[Use Xcode] --> R[Update Recipe.md]
    R --> T[Update template]
    end
    T --> C
    subgraph End users of this project
    C[Run ./configure.rb] --> M[Use your own module]
    end

Contributing

See the file Recipe.md for the complete steps (e.g. Open Xcode, make new project, click here, type that, …) of how we made the template.

More Repositories

1

system-bus-radio

Transmits AM radio on computers without radio transmitting hardware.
C
6,115
star
2

FDWaveformView

Reads an audio file and displays the waveform
Swift
1,202
star
3

FDTake

Easily take a photo or video or choose from library
Swift
322
star
4

FDSoundActivatedRecorder

Start recording when the user speaks
Swift
278
star
5

corelocationcli

Command line program to print location information from CoreLocation
Swift
206
star
6

FDChessboardView

An iOS / Mac view controller for chess boards
Swift
77
star
7

formant-analyzer

iOS application for finding formants in spoken sounds
Swift
51
star
8

spend-ERC20-create-ERC721

Tech demo: customers spend your ERC-20 tokens to create their ERC-721 certificates
Solidity
49
star
9

cameralife

Camera Life -- Run your own photo website
PHP
40
star
10

github-pages-template

An opinionated starting point and build system for awesome, collaboratively-edited HTML websites
JavaScript
31
star
11

opensea-shared-storefront-backdoor

Demonstration of a backdoor in OpenSea Shared Storefront
JavaScript
30
star
12

FDTextFieldTableViewCell

A UITableViewCell with an editable text field
Swift
26
star
13

FDBarGauge

The successor to F3BarGauge
Swift
25
star
14

google-voice-numbers

Retrieves the full list of available Google Voice numbers and finds the best ones
HTML
24
star
15

erc721-example

A scalable example of the ERC-721 standard
Solidity
19
star
16

solidity-template

The starting point for every Solidity project
Solidity
18
star
17

19-questions

A machine learning / bayesian inference engine assigning attributes to objects
PHP
16
star
18

eavesdrop

Listen in on TCP conversations on the network your computer is attached to
Objective-C
16
star
19

google-sheets-etl

Live import all your Google Sheets to your data warehouse
PHP
15
star
20

8-ball

A delightfully simple iOS + watchOS app for answering questions
Swift
14
star
21

freescout-sidebar-webhook

Sidebar Webhook asynchronously injects HTML from your server into conversation sidebars
PHP
14
star
22

philadelphia-traffic-court-rtk

Every traffic violation in the city of Philadelphia issued from 2006 to 2014
Python
12
star
23

pro-penetration

Penetration research against NSFW websites
PHP
11
star
24

structured-acceptance-test

An open format definition for static analysis tools
Ruby
10
star
25

lightning-sites

☁️ Lightning deployment for your ~/Sites folders
Ruby
10
star
26

footballbetting

Automatically exported from code.google.com/p/footballbetting
9
star
27

pizzaman

The iOS game
Swift
8
star
28

contract-scanner

A tool to find all NFT contracts on an EVM blockchain
JavaScript
6
star
29

linkbuilding-spider

A PHP project to check if websites are linking to your website
PHP
6
star
30

web-puc

Validate your web project uses the latest CSS & JS includes
Ruby
6
star
31

custodial721

A token that holds other tokens / Can also create and transfer 721s in batch
5
star
32

pawn-bfs

A breadth-first enumeration of all reachable chess diagrams
C
5
star
33

solidity-monolithic-flattener

A tool to flatten solidity contracts for runtime optimization
4
star
34

thin-pdo

A minimal wrapper for PHP's PDO class to make database access easier
PHP
3
star
35

fedex-ship-manager-api

Documentation for hidden FedEx Ship Manager® API
HTML
3
star
36

voicemail-remote

Continuously update your voicemail outgoing message
Shell
3
star
37

live-testing-with-estimateGas

Code examples from the article published with 0xcert
HTML
3
star
38

aion-aip040

Reference implementation for Aion non-fungible tokens
Java
3
star
39

podcast.phor.net

HTML
2
star
40

html-proofer-mailto_awesome

A custom html-proofer test that makes your mailto links awesome
Ruby
2
star
41

chess-upper-bound-armies

An upper bound of Chess positions by counting army configurations
C
2
star
42

wrapped-number-board

Solidity
2
star
43

Nineteen-Eighty-Five

A novel by William Entriken, based on the public domain work of George Orwell
CSS
2
star
44

tmp-swift5-module

Swift
2
star
45

versioned_database_template

A demonstration of versioned, hashable, attestable databases
2
star
46

sillyutility.net

Compare Utility Bills With Neighbors.
HTML
2
star
47

echo

The best way to practice speaking English or Spanish
Swift
2
star
48

alephcrypto.xyz

https://alephcrypto.xyz
HTML
2
star
49

septa-regionalrail-otp

These reports use every train's arrival time from 2009 until present to recommend schedule changes for chronically late service
HTML
2
star
50

you-cant-leave-this-page

Proof of concept where you can't leave a web page
HTML
1
star
51

phor.net

HTML
1
star
52

open-location-code-wiki

1
star
53

vulnerability-demo.justjavac.com

https://privacylog.blogspot.com/2021/04/upcoming-event-zero-day-live-2021-05-01.html
1
star
54

e-zpass-v-toll-batch-dispute

Documentation to quickly dispute E-ZPass V-TOLL violations
1
star
55

jump-qrs

QR codes which redirect to a destination website as configured in this repository
HTML
1
star
56

rubygems-issue-6214

1
star
57

beginner-project-php-sql

You will learn to create your first meaningful PHP project which connects to a database
1
star
58

blog.phor.net

William Entriken Blog — Analysis of all
CSS
1
star
59

aip-xxx-implementation

Java playground illustrating all best practices for Aion development
Java
1
star
60

blackjack-simulator

JavaScript implementation of blackjack rules and player betting strategies
C
1
star
61

qr-radiation

An optimizer that makes your QR code look like a target graphic by manipulating your URL
JavaScript
1
star
62

impostor

Who's the impostor?
HTML
1
star