All Projects β†’ CaptainYukinoshitaHachiman β†’ Cryptography-and-Privacy

CaptainYukinoshitaHachiman / Cryptography-and-Privacy

Licence: MIT license
[Accepted] The WWDC19 Scholarship Application Project

Programming Languages

swift
15916 projects
HTML
75241 projects

Projects that are alternatives of or similar to Cryptography-and-Privacy

WWDC17
WWDC 2017 Scholarship Submission by Phil Zet (Philipp Zakharchenko)
Stars: ✭ 14 (-53.33%)
Mutual labels:  wwdc, wwdc-scholarship, playgroundbook, wwdcscholars
Paperville
πŸ™ Design a city in Swift code (ο£ΏWWDC 2018 submission, ACCEPTED)
Stars: ✭ 48 (+60%)
Mutual labels:  wwdc-scholarship, playgroundbook, wwdcscholars
NeuralNetwork
A Swift PlaygroundBook about Neural Networks
Stars: ✭ 54 (+80%)
Mutual labels:  wwdc-scholarship, playgroundbook, wwdc19
WWDC
🌈 𝐖𝐖𝐃𝐂 π’πžπ¬π¬π’π¨π§ 𝐍𝐨𝐭𝐞𝐬 πŸ‘©πŸ»β€πŸ’» ✨
Stars: ✭ 31 (+3.33%)
Mutual labels:  apple, wwdc, wwdc19
iOS-app
Our new iOS portfolio app for WWDCScholars
Stars: ✭ 64 (+113.33%)
Mutual labels:  wwdc, wwdc-scholarship, wwdcscholars
2019
Student submissions for the WWDC 2019 Scholarship
Stars: ✭ 276 (+820%)
Mutual labels:  apple, wwdc
Awesome Swiftui
A curated list of awesome SwiftUI tutorials, libraries, videos and articles.
Stars: ✭ 289 (+863.33%)
Mutual labels:  apple, wwdc
Awesome Swift Korean Lecture
ν›Œλ₯­ν•œ Swift μ„Έμ…˜ λ™μ˜μƒ(κ°•μ’Œ), ν•œκΈ€ μžλ§‰μžˆλŠ” ν˜Ήμ€ ν•œκ΅­μ–΄ κ°•μ˜ 정보 링크 λͺ¨μŒ (Awesome Swift Korean lecture information)
Stars: ✭ 649 (+2063.33%)
Mutual labels:  apple, wwdc
2020
Student submissions for the WWDC 2020 Swift Student Challenge
Stars: ✭ 159 (+430%)
Mutual labels:  apple, wwdc
Wwdc
The unofficial WWDC app for macOS
Stars: ✭ 8,137 (+27023.33%)
Mutual labels:  apple, wwdc
WWDC
πŸ‘©πŸ»β€πŸ’» 1일 1WWDC μ˜μƒ 보기 🎬
Stars: ✭ 23 (-23.33%)
Mutual labels:  apple, wwdc
2018
Student submissions for the WWDC 2018 Scholarship
Stars: ✭ 261 (+770%)
Mutual labels:  apple, wwdc
Wwdc
You don't have the time to watch all the WWDC session videos yourself? No problem me and many contributors extracted the gist for you πŸ₯³
Stars: ✭ 2,561 (+8436.67%)
Mutual labels:  apple, wwdc
About Swiftui
Gathering all info published, both by Apple and by others, about new framework SwiftUI.
Stars: ✭ 5,954 (+19746.67%)
Mutual labels:  apple, wwdc
Doesitarm
🦾 A list of reported app support for Apple Silicon and the new Apple M1 Macs
Stars: ✭ 3,200 (+10566.67%)
Mutual labels:  apple, wwdc
2017
Student Submissions for the WWDC 2017 Scholarship
Stars: ✭ 240 (+700%)
Mutual labels:  apple, wwdc
Wwdc Recap
A collection of session summaries in markdown format, from WWDC 20, 19 & 17
Stars: ✭ 121 (+303.33%)
Mutual labels:  apple, wwdc
Wwdc Notes
WWDCNotes.com content ✨
Stars: ✭ 183 (+510%)
Mutual labels:  apple, wwdc
iPad Swift Playgrounds
Converted iPad Swift Playgroundbooks into Playgrounds so that the people who don't have an iPad can run a Swift Playgroundbook in macOS.
Stars: ✭ 24 (-20%)
Mutual labels:  wwdc, playgroundbook
osxapp vers
Get product name, exact product version and build version from an Apple Install [Mac OS X|OS X|macOS]*.app or from a mounted Mac OS X Install CD/DVD image
Stars: ✭ 12 (-60%)
Mutual labels:  apple

Cryptography & Privacy

Open in Swift Playgrounds

WWDC19 Swift Playgrounds

Tell us about the features and technologies you used in your Swift playground.

The playground book I have created for this year's WWDC is called Cryptography & Privacy. I created this in order to tell users the most basic knowledge in cryptography, so that they can be aware of their online privacy. It discusses the importance of privacy first in the introduction cutscene first, then tells the concepts of symmetric and asymmetric cryptograph, and finally provides a practice in real, requiring the user to implement the "secure chat" feature in an imaginary app.

To implement the features above, these frameworks/techniques are used:

  • HTML5 + CSS3 + JavaScript
  • UIKit
  • Security
  • CommonCrypto
  • PlaygroundSupport
  • Markup

The web technologies, well, are actually auto-generated using Hype. With the help, I created the introduction cutscene.

UIKit is used to create live views. I made custom views by subclassing from UIView and did some custom drawing. I created a live view to show users how the messages are transferred so that they can experience it more clearly.

Security and CommonCrypto are used for implementing the cryptography stuff. I checked the Apple Developer Documentations and StackOverflow to learn them.

PlaygroundSupport, obviously, is used to control the the playground book. But this playground is far more than that. By using PlaygroundSupport, this playground book takes advantage of always-on live views, meaning it can be even more interactive, and therefore is enabled to provide better user experience. Completions in the Shortcut Bar are also customized, which gives the user a clean way to code. Moreover, the last page supports all the execution modes, which can help user skip the live view animation or slow down it so that they can understand them better.

And finally, all the contents telling about the cryptography concepts are written in Markup.

Beyond WWDC19

If you've shared or considered sharing your coding knowledge and enthusiasm for computer science with others, let us know.

I love coding and computer science, and I love sharing them with others so that more people can benefit from and love it.

I have recently come to the international department of a school, seeking to go to the USA to learn more about CS in the future. And here, I met my new teachers and got to help them using my coding and CS knowledge.

We have an AI course at our school, which tells us how to use Python3 and TensorFlow. Occasionally, last year I attended 2018@Swift, the biggest Swift conference in China Mainland, and there I learned Swift for TensorFlow and its advantages over TensorFlow with Python. I shared this with my teacher and he was very happy to learn about that.

Also at our school, every morning we read after a record of a vocabulary list created by our ESL teacher to practice our English. However, the way she created the audio file was time-consuming and ineffective:

Every time, she opened the online Merriam-Webster Dictionary webpage, started recording on her iPhone, looked up the definition of each word, clicked on the pronunciation button, counted the interval for 3 seconds, and repeated this hundreds of times. (Sometimes we can even hear the notification sound and the chattering in her office!)

Obviously, that seemed terrible to us since we all know what automation is. Once I knew how she made the audio, I told her that it could be done using programming. When I got home, I made a simple macOS app for her called Pronunciation Generator, which receives a word list input, fetches Merriam-Webster Dictionary API and combines the audio for each word. In order to help other teachers, it is now open source on GitHub. What’s more, I recommended Markdown and Shortcuts to her in order to help automate her teaching workflow. I shared my shortcut used to generate a markdown file containing word definitions with her, and I’m sure this will be of great help in her teaching.

Additionally, I taught her how to use secure chat in Telegram to ensure her privacy. (I often recommend this IM app to my friends.) She was really excited after hearing about it, and told me that for she’s a religious minority in China Mainland, she has been unable to talk about religion with her friends on WeChat because of the existence of censorship.

For the same reason, to protect people’s privacy, I created the playground Cryptography & Privacy for this year’s WWDC Scholarship. I do hope this playground can help people learn something about cryptography, so that they can understand how their data are protected and then be aware of their privacy.

Last but not least, let me talk about something beyond WWDC. I have been looking forward to being a WWDC Scholar since I knew it in primary school, and I’m seeking to learn more about app development there so that I can use my knowledge to solve problems and help others.

Apps on the App Store 2019

So far, I have had one app on the App Store, which is called "BirthReminder". It is open source on GitHub under AGPLv3, and there are 3 contributors besides me. I have made 195 commits (21,630 ++ 12,630 --) to the repo, while the sum of those made by the other three is 31 commits (2,384 ++ 1,578 --). If you think this is not entirely created by me as an individual, please just ignore the following part.

This app enables users to get reminded when their favorite ACG characters are on their birthday. Here, ACG stands for anime, comics, and games. ACG characters are those who appear in ACG works. You may wonder if this makes any sense or not to remind people of the characters' birthdays: That's because ACG culture enthusiasts usually have a weird habit that is celebrating their favorite characters' birthday. In most cases, we may just post a tweet, while sometimes there're people doing it even more enthusiastically. However, sometimes we may not remember the birthdays clearly, so the idea came to my head and I made this app.

This app also has a backend application, which is also written in Swift using Perfect framework. The backend offers to-go birthday information for users to add to their local app, so that they can do it more conveniently. What's more, I've been attempting to rewrite the backend using Vapor. You can find the two backend applications together with the iOS app on my GitHub: https://github.com/CaptainYukinoshitaHachiman

Additionally, besides simply reminding the birthday, I personally think that the app has a deeper value. Nowadays, many people treat ACG works as products only, consume them without thinking but only for fun, and then forget about them soon after consuming, while I treat them as a form of art seriously and hope more people can have the similar idea. By reminding people the ACG characters' birthdays, BirthReminder may get to remind people of the ACG works they enjoyed, the lively and lovely characters, the valuable thoughts inside of them, and the beauty of them, and that probably is what I would like to do most as an ACG enthusiast.

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].