My Playground for the WWDC21 Swift Student Challenge. Get the best advice on managing your ADHD, depending on your personality. This project is not a medical tool nor medical advice.


The ADHD Exploration - WWDC21 Swift Student Challenge Submission

👀 Overview

Submission Status: Waiting for Result!

Welcome, and thank you for your interest in The ADHD Exploration! This is my submission for the Apple WWDC21 Swift Student Challenge. Inspired by an ADHDer friend of mine, this playground aims to give the best ADHD advice based on your personality. After taking a personality test based on the five-factor personality traits, you get one piece of advice correlated with each trait.

Why build this playground?

We are in a global pandemic right now, and almost all we do is now online. It's become much harder to concentrate as technology can be distracting - this is especially true for people with ADHD. We use technology to solve countless problems every day; why not this one?

All of us are unique; hence, we can't expect our ADHD experience to be the same. This playground understands your personality and how it affects different ADHD symptoms to give you the best advice on managing it.

If you have any questions or just want to chat about the playground, feel free to head over to discussions to do so! 😄


I built this playground only for education, experimentation, and most importantly, for fun! This playground is not a medical tool nor medical advice. If you have or think you have ADHD, consult with a medical professional to get proper help. The five-factor personality test here is far from a professional one, so please beware that accuracy may vary. Keep in mind this playground is focused on adults' ADHD.

While the information you will find in this playground may be helpful, take it with a grain of salt.

🚀 Installation

Please note that this playground was built for Mac, and the UI is not optimized for iPad.

  1. Download the repository as a ZIP archive and expand it. You can also clone it :)
  2. If not already installed, get the Swift Playgrounds App from the Mac App Store.
  3. Open it!
    • If you want to import it to My Playgrounds (iCloud Drive):
      1. Launch the Playgrounds app.
      2. From the menu bar; click, File -> Import Playground.
      3. Navigate to your downloaded folder and select The ADHD Exploration.playgroundbook.
      4. Click, Open!
    • If you don’t want to import it next to your playgrounds:
      1. Navigate to your downloaded folder using Finder.
      2. Double click on The ADHD Exploration.playgroundbook to open it.
  4. Explore and have fun! 😃

💻 Usage and Features

Privacy Warning

This playground saves your data on the PlaygroundKeyValueStore - stored on the .playgroundbook file itself. This feature enables iCloud synchronization between Mac computers. Beware that copying and pasting this file to share with a friend may reveal your data to them. Please either reset the playground or use the Delete My Data option in the more menu before sharing to protect your privacy. The same also applies in the case of iCloud file sharing. You should also set the permission to Read Only before sharing on iCloud. Your profile picture is not synced to iCloud. With that out of the way, let’s begin!

Getting Started

  1. Click the Run My Code button to start execution. Please use Playgrounds in full-screen for the best experience!
  2. First, you will see the onboarding screen. Inside it is what I call the inclusive greeting message, which is a text view next to a waving hand emoji that’s cycling through different skin colors. There is also an image view cycling through different Memojis! Enter your preferred name to the text field at the bottom right-hand side of the screen, and click get started. Your name is used only for personalization. Read the disclaimer - similar to the one above - and click on I Understand if you wish to continue. Don’t worry, your name will not be saved to PlaygroundKeyValueStore until you click I Understand.
  3. The playground will then present you with a screen containing primer info. I suggest reading it will help you gain some insight on the topics of ADHD and five-factor personality. Dismiss the view using the x button at the upper right-hand side of your screen to continue.
  4. Upon dismissing the info view, you will see your profile. As you haven’t taken it yet, It will ask you to take the fifteen question personality test. Click Take the test now to take it!
  5. Choose the answer most relevant to you for each question. Please be yourself so the results are as accurate as possible. 😊 You can use the buttons below to navigate through the questions and edit your answers.
  6. After finishing with the test, you will be navigate back to your profile. This time, it will contain your test results and five pieces of advice - one for each trait!

Profile Picture

You should see a prompt to set a profile picture. Click on it to choose one form your photos library! To change or remove your profile picture, use the Settings section in the more menu (...)

💡 Pro Tip: Add a Memoji sticker saved to your photo library form iMessage to match the theme of the playground.

Full List of the More Menu Options

The more menu button is located at the upper right-hand side of your screen and represented with a ... symbol.

  • Retake the Test: Used for taking the personality test again. Old results are lost after the new test is completed.
  • Learn More: Manually view the primer info page that automatically pops at first launch.
  • Show Credits: View a page containing thanks, citations, a small message form me and a countdown to WWDC21!
  • Settings -> Change Profile Picture: Change the profile picture.
  • Settings -> Remove Profile Picture: Delete the set profile picture.
  • Settings -> Delete My Data: Delete all of the user data (user name, profile picture, test results) and stop running the playground for a fresh start.

📝 Minor Differences From Submitted Version

The playground here has minor differences from the one I sent to Apple. They don’t affect the core functionality, and here they are!

  • Removed some friends’ Memojis upon their request to respect their privacy :)
  • Line comment changes on those referring to my essays for the Swift Student Challenge, as they aren’t provided here.
  • I commented out a few lines of code on the submission that make the Learn More view automatically pop up on the first launch due to the challenge’s 3-minute time limit. Uncommented them as the view contains pretty nice primer info.

🎨 Customization!

Customizing Memoji

Want to add your Memoji to the title screen? Go ahead and follow these steps!

  • Send yourself your Memoji sticker using iMessage or your preferred messaging service. Then drag and drop it onto Finder.
  • This step it optional. If you have Pixelmator Pro on your Mac, I highly recommend using the ML Super Resolution tool to upscale your Memoji. I used the tool on every Memoji in this playground.
  • Rename the file like memojiR_yourCustomFilenameHere. The name must start with memojiR_; otherwise, the playground will not detect it.
  • In the Playgrounds app with The ADHD Exploration open, click on the plus symbol in the upper right-hand corner of your screen. On the pop-up view, click on the painting symbol at the top.
  • Click on the Insert From… button. Navigate to the folder your Memoji image file is in, select it, and click open.
  • You should be able to your Memoji on the title screen now. Good Job! 🥳

🔭 Contributing

As you might have guessed, the purpose of this repository is to share my Swift Student Challenge submission with the world and hopefully being an inspiration for you out there. So, I want to keep the main branch as I submitted it with no changes other than mandatory maintenance updates to keep it running on the latest version of Swift Playgrounds.

I would be more than happy to hear and implement your ideas into my playground. Please start a new issue if you wish to contribute, and I will create a new branch.

While contributing, please do not:

  • Add or remove Memojis
  • Add or remove people from the Thanks (Memoji Contributors) section
  • Add or remove citations
  • Request changes that dramatically alter/damage the core functionality of the playground

📚 Citations

What I read about ADHD, Five Factor Personality, and the correlation between them! All in APA Style, list is also included in the playground.

😊 Thanks!

The Majority of the Memojis used in my playground were created randomly; however, I thought adding some of my friends’ Memojis would be pretty cool. Huge shoutout and thanks to these friends for being super awesome and letting me use theirs! List is also included in the playground.

  • Ayşe Silsüpür
  • Bedir Ekim - GitHub
  • Beyza İşkür
  • Daniel Karamanoğlu

📃 License

Licensed under the MIT License

Copyright (c) 2021 M. Bertan Tarakçıoğlu

M. Bertan Tarakçıoğlu
16, ZK FL, DENEYAP Türkiye, WWDC20 Swift Student Challenge Winner, Apple Developer, Maker, MUN Delegate and a Huge Cat Lover!
M. Bertan Tarakçıoğlu
MisterFusion is Swift DSL for AutoLayout. It is the extremely clear, but concise syntax, in addition, can be used in both Swift and Objective-C. Support Safe Area and Size Class.

MisterFusion MisterFusion makes more easier to use AutoLayout in Swift & Objective-C code. Features Simple And Concise Syntax Use in Swift and Objecti

Taiki Suzuki 318 Nov 7, 2021
The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful. Objective-C and Swift compatible.

The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful. PureLayout extends UIView/NSView, NSArray, and NSLayoutConstrai

PureLayout 7.5k Nov 25, 2021
A Swift Autolayout DSL for iOS & OS X

SnapKit is a DSL to make Auto Layout easy on both iOS and OS X. ⚠️ To use with Swift 4.x please ensure you are using >= 4.0.0 ⚠️ ⚠️ To use with Swift

null 18k Nov 21, 2021
A declarative Auto Layout DSL for Swift :iphone::triangular_ruler:

Cartography ?? ?? Using Cartography, you can set up your Auto Layout constraints in declarative code and without any stringly typing! In short, it all

Robert Böhnke 7.3k Nov 27, 2021
A bit of steroids for AutoLayout, powered by Swift.

AutoLayoutPlus AutoLayoutPlus is a Swift library consisting in a set of extensions to help dealing with Auto Layout programatically. With AutoLayoutPl

Rui Costa 26 Sep 1, 2020
A powerful Swift programmatic UI layout framework.

Build dynamic and beautiful user interfaces like a boss, with Swift. Neon is built around how user interfaces are naturally and intuitively designed.

Mike 4.6k Nov 30, 2021
Flexbox in Swift, using Facebook's css-layout.

SwiftBox A Swift wrapper around Facebook's implementation of CSS's flexbox. Example let parent = Node(size: CGSize(width: 300, height: 300),

Josh Abernathy 812 Nov 21, 2021
AutoLayoutKit in pure Swift.

It's like AutoLayoutKit but written in Swift. For pure Swift projects. And it's super simple. Features concise, simple and convenient API raw AutoLayo

Florian Krüger 78 Feb 13, 2021
Tiny Swift DSL for Autolayout

SwiftAutoLayout SwiftAutoLayout is a tiny DSL for Autolayout intended to provide a more declarative way to express layout constraints. Here's a quick

Indragie Karunaratne 659 Nov 23, 2021
Yet Another Swift Auto Layout DSL

FormationLayout Documentation FormationLayout is the top level layout class for one root view. FormationLayout takes a UIView as its rootView. transla

Evan Liu 53 Jun 3, 2021
Lightweight declarative auto-layout framework for Swift

SwiftyLayout SwiftyLayout is a framework that allows to describe layout constraints (ie NSLayoutConstraint) as a simple mathematical formula in a Swif

Hisakuni Fujimoto 15 Nov 6, 2017
Auto Layout In Swift Made Easy

Swiftstraints Swiftstraints can turn verbose auto-layout code: let constraint = NSLayoutConstraint(item: blueView, attr

null 118 Apr 28, 2021
A Swift binding framework

Bond, Swift Bond Update: Bond 7 has been released! Check out the migration guide to learn more about the update. Bond is a Swift binding framework tha

Declarative Hub 4.2k Nov 23, 2021
Minimal Auto Layout in Swift

Restraint Restraint is a very very small library to help make your use of NSLayoutConstraint in Swift more legible & declarative. Like programmatic vi

The Puffin Supply Project 80 Nov 14, 2021
Swift microframework for declaring Auto Layout constraints functionally

Relayout Relayout is a Swift microframework to make using Auto Layout easier with static and dynamic layouts. Why? If you want to build a UI using App

Steve Streza 561 Jun 3, 2021
Fast Swift Views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. [iOS/macOS/tvOS/CALayer]

Extremely Fast views layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainabl

layoutBox 1.9k Nov 30, 2021
An easy way to create and layout UI components for iOS (Swift version).

Introduction Cupcake is a framework that allow you to easily create and layout UI components for iOS 8.0+. It use chaining syntax and provides some fr

nerdycat 282 Nov 24, 2021
FlexLayout adds a nice Swift interface to the highly optimized facebook/yoga flexbox implementation. Concise, intuitive & chainable syntax.

FlexLayout adds a nice Swift interface to the highly optimized Yoga flexbox implementation. Concise, intuitive & chainable syntax. Flexbox is an incre

layoutBox 1.5k Nov 29, 2021