Giter Site home page Giter Site logo

syllabus-for-apple-devices's Introduction

Mini-Syllabus for Development on Apple Devices

Swift Logo

Table of Contents


Swift Core Libraries

The Swift Core Libraries project provides higher-level functionality than the Swift standard library. These libraries provide powerful tools that developers can depend upon across all the platforms that Swift supports. The Core Libraries have a goal of providing stable and useful features in the following key areas:

  • Commonly needed types, including data, URLs, character sets, and specialized collections
  • Unit testing
  • Networking primitives
  • Scheduling and execution of work, including threads, queues, and notifications
  • Persistence, including property lists, archives, JSON parsing, and XML parsing
  • Support for dates, times, and calendrical calculations
  • Abstraction of OS-specific behavior
  • Interaction with the file system
  • Internationalization, including date and number formatting and language-specific resources
  • User preferences

Writing code that provides all of this functionality from scratch would be an enormous undertaking. Therefore, we’ve decided to bootstrap this project by taking advantage of great work that has already been done in these areas. Specifically, we will reuse the API and as much implementation as is possible from three existing libraries: Foundation, libdispatch, and XCTest.


Foundation

The Foundation framework defines a base layer of functionality that is required for almost all applications. It provides primitive classes and introduces several paradigms that define functionality not provided by the language or runtime. It is designed with these goals in mind:

  • Provide a small set of basic utility classes.
  • Make software development easier by introducing consistent conventions.
  • Support internationalization and localization, to make software accessible to users around the world.
  • Provide a level of OS independence, to enhance portability.

More information about the Foundation framework in general is available from Apple’s documentation. The Swift.org version of Foundation makes use of many of the same underlying libraries (e.g. ICU and CoreFoundation) as Apple’s implementation, but has been built to be completely independent of the Objective-C runtime. Because of this, it is a substantial reimplementation of the same API, using pure Swift code layered on top of these common underlying libraries. Much more information about this work is available on our GitHub project page.


libdispatch

Grand Central Dispatch (GCD or libdispatch) provides comprehensive support for concurrent code execution on multicore hardware.

libdispatch is currently available on all Darwin platforms. This project aims to make a modern version of libdispatch available on all other Swift platforms. To do this, we will implement as much of the portable subset of the API as possible, using the existing open source C implementation.

More information about libdispatch for Linux is available on our GitHub project page.


XCTest

The XCTest library is designed to provide a common framework for writing unit tests in Swift, for Swift packages and applications.

This version of XCTest uses the same API as the XCTest you are familiar with from Xcode. Our goal is to enable your project’s tests to run on all Swift platforms without having to rewrite them.

More information about XCTest on Linux is available on our GitHub project page.


General Links


Package managers

  1. Carthage
  2. CocoaPods

Advantages of CocoaPods:

  1. Really easy to use
  2. Biggest DB of packages
  3. Really many projects use it

Tools

  1. Xcode Help
  2. Sparkle

List to read at glance:

  1. Objective-C Crash Course 0.5. From C++ to Objective-C
  2. Learn X in Y minutes
  3. Algorithms and data structures in Swift, with explanations!
  4. macOS Development Tutorials
  5. Mini mind-map handbook

Official References

  1. Language Guide
  2. Language Reference

Playgrounds

  1. A Swift Tour Playground
  2. Crustacean.playground
  3. Using JSON with Custom Types
  4. A collection of useful tips for the Swift language in Playground form
  5. Playground demonstrating the new features in in Swift 4.2

Open sourse (client-server) projects for examples

Coming soon...


UI Kit

  • Element — Programmatic UI for macOS
    • Stash — Simple example app made with Element

Debuggers


FAQ

1. Why Flipper better, then standart debugger?

With Sonar being built as a standalone app, we can do more things, like handling adb connections and supporting iOS, which wasn't easily achievable with stetho.

This is why we built Sonar. We wanted to create a platform that gives us all the flexibility we need to build more advanced features and support for iOS. One of Sonar's core concept is it's extensibility using plugins.

2. What is Cocoa?

It's Apple's native object-oriented application programming interface (API) for their operating system macOS.

For iOS, tvOS, and watchOS, a similar API exists, named Cocoa Touch, which includes gesture recognition, animation, and a different set of graphical control elements. It is used in applications for Apple devices such as iPhone, iPad, iPod touch, Apple TV, and Apple Watch.

Cocoa consists of the Foundation Kit, Application Kit, and Core Data frameworks, as included by the Cocoa.h header file, and the libraries and frameworks included by those, such as the C standard library and the Objective-C runtime.


Authors

Ivan Istomin Ivan Istomin

Ilya Gulkov Ilya Gulkov

syllabus-for-apple-devices's People

Contributors

istom1n avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.