Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Welcome
Part 1: Foundation
1 Your Foundation
What Is Your Foundation There Is No Clear Path
2 Where to Start
Setting Yourself Up for Success A Path Without Distractions Choose Your Teacher Wisely
3 Know Your Tools
Xcode Developer Portal Provisioning Instruments Command Line Third Party Tools
4 Adopt Best Practices
What Are Best Practices Patterns Anti-patterns Good Practices for Swift Be Critical
5 Security
Make It Hard Plain Text Obfuscating Information Fetching Sensitive Information Encryption Privacy Logging and Debugging Educating Your Client
6 Don’t Ignore Your Foundation
Under the Hood Dependencies Don’t Ignore the Fundamentals
7 Respect the SDK
Know Your Limitations Respect the SDK
9 Design Patterns
Model-View-Controller Model-View-ViewModel Singletons Dependency Injection References, Delegation, and Notifications Master These Patterns 6 Protocol-Oriented Programming 7 Reactive Programming
Part 2: Swift
1 Learn Swift With an Open Mind
Reference Types and Value Types Protocol-Oriented Programming Type Safety Best Practices Forget What You Know
2 Be Critical 3 Embracing Optionals
Warning Sign Elegance and Beauty Swift to the Rescue Embrace Optionals
4 Mind the Exclamation Mark
Use Cases Convenience and Laziness Don’t Be Lazy When I Use the Exclamation Mark A Personal Choice
5 Exclamation Marks and Fatal Errors
Clarity Over Subtleness Choosing for Clarity
6 Smelly Code
Forced Unwrapping and Conversion Monster Classes Massive Methods Ignoring Errors Singletons String Literals Is Your Code Smelly
7 Value Types and Reference Types
What’s the Fuss An Example Benefits of Value Types When to Use Value Types
8 Catching Errors
When Should You Handle Errors Where Should You Handle Errors Notifying the User Monitoring Application Health Don’t Ignore Them
9 Using Fatal Errors to Write Elegant Swift
What to Do When You Don’t Know What to Do Guarding Against Unexpected Events Use Fatal Errors Sparingly Clarity and Elegance
Part 3: Projects
1 A Brand New Project
Step 1: Setting Up the Project Step 2: Organizing the Project Step 3: Adding a README.md Step 4: Build and Run Step 5: Adding a .gitignore Step 6: Putting the Project Under Source Control Step 7: Pushing the Project to GitHub Step 8: Optional Steps
2 Project Structure
An Example View Controllers Test Target On Disk What Do I Gain Tools Caveats
3 Project Hygiene
Projects Evolve Obsolete Files Comments Documentation Don’t Commit Everything Guidelines and Exceptions
4 Document Everything
Start With the Basics Make It Easy What to Document Up to Date Make It a Core Tool I’m a Team of One Make It a Habit Time Is Money
Part 4: Workflow
1 Testing
Where to Start Code Coverage Writing Better Code Dependency Injection Xcode and Testing My Current Test Setup What Are You Testing It Takes Time
2 Continuous Integration
What Is It Why Is This Useful Long Hanging Fruit Avoid Human Tinkering TestFlight Painless Releases Make It Robust Transparency Learning Curve
3 Refactoring
Technical Debt Building for the Future The Fallacy of Sunk Cost Starting Anew
4 Source Control
The Basics Don’t Break These Rules Commits Stashing Patching Git Flow Some Tips
5 Dependencies
Minimize Dependencies What Is a Dependency Fewer Dependencies Mapping the Liabilities of a Project Don’t Make Your Life Too Easy Rolling Your Own Choose Wisely Becoming a Better Developer Watch Out for the Defaults Challenge Yourself
6 Automation
Scripting Build Phases Automated Testing Documentation Continuous Integration fastlane Keep It Simple
7 Privacy
Protecting the User’s Privacy Who Do You Work With Giving the User Control Third Party SDKs Choose Wisely
8 What to Do When You Inherit a Software Project
First Things First Build and Run Collect Data Dependencies Working on the Project Document Everything And Beyond
9 Speed, Quality, and Technical Debt
Speed and Quality Technical Debt Focus How to Get Rid of Technical Debt Taking Shortcuts
Part 5: Team
1 Code Reviews
Just Start Calendar and Agenda Make Them Actionable Keep Them Small Be Prepared Tools That Hurts Convincing Management Frequency But It’s Just Me Give It a Try
2 Adopt a Style Guide
Why Have One Automation Rough Transition
3 Working In a Team
Hire the Right People Leadership Communication Give It Time Respect When Things Hit the Fan Ownership and Responsibility Share and Ask
4 Being a Leader
Listen and Be Open Modesty, Humility, and Respect Work as a Team Working With People Follow Your Gut Lead
Part 6: Career
1 Open Source
Start Small Taking the Plunge Documentation Taking It Seriously Giving Up Control Taking Responsibility
2 You Are the Constant in Your Career
Putting Yourself First Setting Goals Learning Requires an Investment Take Care of Yourself Looking Back
3 Build That Application
Build and Ship Show What You Can Stay Ahead Rinse and Repeat Build That Application
4 Protect Your Productivity
Working From Home Working In an Office Minimizing Interruptions Find a Quiet Place Deal With It
5 Building Your Portfolio
Scratch an Itch Setting Goals Learn the Basics But Start Creating
6 How Badly Do You Want It
Contribute Build Maintain Plan and Manage Gain Experience Be Yourself How Badly Do You Want It What About You
7 Freelancing and Subcontracting
Freelancing and Subcontracting Being Picky Firing Clients
Part 7: Products
1 Ship, Ship, Ship
It’s Hard How to Ship Consistently Internal Deadlines Remove Friction and Clutter
2 Talk to Your Customers
Solve a Problem Ground Zero Is This for You But It’s Fantastic A Recipe for Success
3 What Is Stopping You From Shipping
Why Is This Important Start Small Remove Clutter
4 Motivation Will Get You Only Halfway
Motivation Won’t Cut It Running a Marathon Pulling the Plug Start and Persevere Challenge Yourself
5 How to Make a Living as a Mobile Developer
Paid Up Front Freemium Advertising In-App Purchases Subscriptions Donations Finding the Right Business Model Experiment But Be Smart Evolution
Part 8: You
1 Being and Staying Productive
Maintaining Focus Protect Your Productivity Distraction Is Addictive Take Care of Yourself
2 Stop Looking for the Silver Bullet
An Example Investigate and Test Stop Looking for the Silver Bullet
3 You Are Not an Imposter
What Is It Why Do I Bring This Up Curing Imposter Experience Talk About It It’s Common Don’t Believe Everything You Read Don’t Let It Affect You Success Through Failure
Part 9: Learning
1 Choose Your Teacher Wisely
Information Overload Who to Trust Focus, Focus, Focus Never Stop Learning
2 Taking a Shortcut
Internship Freelancing and Subcontracting Learn, Learn, Learn Build, Build, Build Choose Wisely
3 Some Things Are Hard
Cut Yourself Some Slack
4 Learn the Rules, Then Break Them
Examples Growing as a Developer Creating Something Better
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion