• Stars
    star
    101
  • Rank 327,213 (Top 7 %)
  • Language
  • Created over 5 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

A community project to translate free Swift tutorials

Hacking with Swift Translations

A project to create free Swift tutorials for the world

Hacking with Swift is a free online book by Paul Hudson, written in English, teaching the fundamentals of iOS app development using Swift.

HackingWithSwift.com had 1.9 million visitors last year, spread across 6.5 million page views – all people keen to have fun learning something new, or build the app of their dreams. But in 2019 I want to take it further: I want to help people learn to build apps even if they can’t speak English.

That’s where this project comes in. This is the Hacking with Swift Translations project, where I hope to crowd-source translations of the Hacking with Swift projects in any languages where people can help. The finished translations will be released for free on the site so that everyone can enjoy learning Swift regardless of their language or financial situation.

So, I have uploaded the Markdown files for all 40 chapters in Hacking with Swift - the language introduction, plus 39 projects.

If you want to help translate Hacking with Swift into your language, here’s what you need to do:

  1. Fork this repository.
  2. Create a directory with your language code, if it doesn’t already exist – e.g. “fr” for French, “de” for German, “es” for Spanish, “it” for Italian, “zh” for Chinese, and so on.
  3. Check the Issues tab to see which files are currently marked as "Taken" for your target language. Taken issues are there to let people know who is working on what right now, so we don't repeat work by accident. When you want to mark a file as being taken by you, create an issue using this name structure: "Taken: [language code] Filename.md". For example, "Taken: [es] 10-1.md"
  4. Translate part or all of one Markdown file, placing your new file in your translation directory. Please keep the same filename as the English translation so we can track changes more easily, but if your translation is only partial please append “partial” to the filename – e.g. 3-5-partial.md.
  5. Add a JSON file in the “contributors” directory describing you, along with your 500x500px avatar as a PNG. See paul-hudson.json for an example. Your JSON file should be named your-name.json, e.g. paul-hudson.json, and your avatar should have the same name with the extension “.png”, e.g. paul-hudson.png.
  6. Before you commit your changes, make sure you pull the latest changes from the repository so that you don't end up with large merge commits.
  7. Go ahead and commit your changes, then open a pull request so they can be merged in.

IMPORTANT NOTE 1: If you open a pull request with your translation, you are granting two important rights: the right for me (Paul Hudson) to distribute your translation so that others can read it, and the right for others to modify your translation in the future. The former is important otherwise I can’t feature your work on the site, and the latter is important because as Swift continues to evolve we need to make sure the translations stay up to date.

IMPORTANT NOTE 2: Adding a JSON file and avatar picture is optional, but would be nice – I want to have a page on the site where I can feature everyone who helped with translations.

IMPORTANT NOTE 3: By contributing text here you agree that you are only translating the English, and not copying content from elsewhere. I don’t want lawsuits because someone plagiarized a different Swift tutorial.

IMPORTANT NOTE 4: Please do not modify the “en” directory – it’s there for reference only.

What’s the goal?

Hacking with Swift has over 1200 articles at the same of writing. While all of those are free, they are all also in English, which limits who can benefit from them.

With this project I hope we’ll be able to work together to build community translations of all 40 chapters of Hacking with Swift, so that everyone can learn Swift regardless of their language or whether they can afford to buy books. It might only be for a couple of key languages, but I hope it will still be helpful to millions of people around the world.

If things do work well, I’ll be happy to expand the project and add all the Swift Knowledge Base articles as well as Swift in Sixty Seconds, massively expanding the range of non-English material for Swift learners. And if things don’t work so well, at least we gave it a shot.

Your help is hugely appreciated, and I hope together we can deliver high-quality, free iOS tutorials to many more people around the world.

Joining the project

To get started, all you have to do is translate part or all of the English Markdown into your native language, then open a pull request so I can merge your change back into the master repo. All files are stored as UTF-8 Markdown, which should be suitable for all world languages.

I strongly recommend you make frequent, small commits so that there’s less chance of someone repeating your work at the same time as you. That is, make each Markdown file one pull request rather than working on lots of them at once.

Alternatively, open a work in progress pull request using your language and chapter number, so others can see someone else is working on it.

If you’d like to play a more active role and have already made a few commits, I’d be happy to add you as a contributor to the project so you can act as a reviewer for your preferred language. If some languages end up with several active translators, I suspect creating a Trello board or similar might work well.

License

I want to make a few things clear up front to avoid disappointment and/or confusion later on.

  • This does not give you the right to distribute any material here, either commercially or otherwise.
  • This does however give you the ability to download all of the Hacking with Swift book for your personal offline use.
  • When you commit code to this repository you are granting Paul Hudson the right to distribute your translation.
  • When you add your avatar to the contributors directory you confirm you have the right to distribute that image, and are granting Paul Hudson the same right.
  • When you commit code to this repository you are granting other contributors the right to modify your translation in this repository, either to make corrections, to follow Swift changes, because the original English book has changed, or other similar reasons.

Please note: This is new to me and I’m figuring it out as I go along, so if you have questions, suggestions, or feedback please get in touch: you can email [email protected] or tweet me @twostraws.

More Repositories

1

ControlRoom

A macOS app to control the Xcode Simulator.
Swift
5,610
star
2

HackingWithSwift

The project source code for hackingwithswift.com
Swift
5,607
star
3

Unwrap

Learn Swift interactively on your iPhone.
Swift
2,265
star
4

Inferno

Metal shaders for SwiftUI.
Metal
2,238
star
5

wwdc

WWDC Community: Learning and sharing together
1,858
star
6

Sitrep

A source code analyzer for Swift projects.
Swift
1,294
star
7

CodeScanner

A SwiftUI view that is able to scan barcodes, QR codes, and more, and send back what was found.
Swift
930
star
8

Vortex

High-performance particle effects for SwiftUI.
Swift
910
star
9

whats-new-in-swift-5-0

An Xcode playground that demonstrates the new features introduced in Swift 5.0.
Swift
731
star
10

Ignite

A static site generator for Swift developers.
Swift
707
star
11

Sourceful

A syntax highlighting source editor for iOS and macOS using UITextView and NSTextView.
Swift
683
star
12

ShaderKit

A library of fragment shaders you can use in any SpriteKit project.
GLSL
655
star
13

SwiftOnSundays

Completed projects for the Swift on Sundays livestream series
Swift
635
star
14

simple-swiftui

A collection of small SwiftUI sample projects.
Swift
634
star
15

Brisk

A proof of concept scripting library for Swift
Swift
503
star
16

SwiftGD

A simple Swift wrapper for libgd
Swift
448
star
17

VisualEffects

A semi-official SwiftUI wrapper for UIVisualEffectView
Swift
354
star
18

whats-new-in-swift-5-5

Swift
312
star
19

Subsonic

A small library that makes it easier to play audio with SwiftUI.
Swift
308
star
20

swiftui-changelog

A repository to track changes in the SwiftUI generated interface.
Swift
258
star
21

macOS

The project source code for Hacking with macOS.
Swift
239
star
22

whats-new-in-swift-4-1

An Xcode playground that demonstrates the new features introduced in Swift 4.1.
Swift
221
star
23

TapStore

Code for a YouTube video on UICollectionView.
Swift
162
star
24

NeumorphismSwiftUI

Code to accompany my article on this topic.
Swift
139
star
25

whats-new-in-swift-5-3

An Xcode playground that demonstrates the new features introduced in Swift 5.3.
Swift
127
star
26

iDine

Source code for my SwiftUI introduction tutorial.
Swift
126
star
27

whats-new-in-swift-5-1

An Xcode playground that demonstrates the new features introduced in Swift 5.1.
Swift
121
star
28

whats-new-in-swift-5-8

Swift
120
star
29

whats-new-in-swift-4-2

An Xcode playground that demonstrates the new features introduced in Swift 4.2.
Swift
116
star
30

Sharpshooter

A tiny Xcode extension for people who debug with print().
Swift
115
star
31

whats-new-in-swift-5-7

Swift
115
star
32

100

A list of solutions for the 100 Days of Swift challenge
110
star
33

whats-new-in-swift-5-4

Swift
100
star
34

watchOS

The project source code for Hacking with watchOS.
Swift
98
star
35

vapor-clean

A Vapor 3 template with no additional cruft.
Swift
97
star
36

whats-new-in-swift-5-2

An Xcode playground that demonstrates the new features introduced in Swift 5.2.
Swift
95
star
37

AppleTime

A tiny program to use 9:41 in your iOS simulators.
Swift
92
star
38

whats-new-in-swift-5-6

Swift
91
star
39

HackingWithReact

The project source code for hackingwithreact.com
JavaScript
72
star
40

iTour

Source code for my SwiftData introduction tutorial.
Swift
67
star
41

Placeholder

Place temporary images in your iOS app showing the size of the available space.
Swift
56
star
42

Trekr

Companion code for a YouTube livestream.
Swift
54
star
43

FaceFacts

Source code for my SwiftUI + SwiftData tutorial.
Swift
51
star
44

Markdown

A small and fast Markdown parser library for Swift.
Swift
44
star
45

SwiftOverCoffee

Links to solutions for Swift over Coffee challenges
39
star
46

SwiftSlug

A simple package to convert strings to URL slugs.
Swift
38
star
47

Playmaker

Create Xcode playgrounds from Markdown.
Swift
35
star
48

IgniteStarter

A starter template for the Ignite static site generator.
Swift
33
star
49

tvOS

The project source code for Hacking with tvOS.
Swift
30
star
50

IgniteSamples

Sample code for the Ignite static site generator.
Swift
23
star
51

kitura-vs-vapor

A side-by-side comparison of two popular server-side Swift frameworks.
Swift
22
star
52

Cgd

A small Swift package exposing libgd to Swift.
Swift
20
star
53

super-powered-string-interpolation

Swift
18
star
54

SamplePackage

A test package for Swift Package Manager.
Swift
18
star
55

betterbeeb

Better Beeb
Swift
16
star
56

HowToInstrument

A deliberately broken app to help demonstrate Instruments.
Swift
14
star
57

BioBlitz

Code created during my birthday livestream 2022.
Swift
14
star
58

Paraphrase

A trivial app for storing and viewing famous quotes
Swift
12
star
59

DadJokes

The code from my try! Swift NYC 2019 talk.
Swift
10
star
60

homebrew-brew

Homebrew formulae.
Ruby
8
star
61

Paraphrase-Improved

Swift
4
star
62

switcharoo

Switcharoo
Python
4
star
63

easyoc

EasyOC
Objective-C
4
star