Overview
Comment: | README.md: Add "What is ObjFW?" section |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
55f34b8e819465ab17929959232bcccc |
User & Date: | js on 2020-05-31 18:57:53 |
Other Links: | manifest | tags |
Context
2020-05-31
| ||
19:04 | README.md: Add a small prologue check-in: 84d53c7f10 user: js tags: trunk | |
18:57 | README.md: Add "What is ObjFW?" section check-in: 55f34b8e81 user: js tags: trunk | |
16:07 | README.md: Adapt instructions for Fossil check-in: b388ccc6b0 user: js tags: trunk | |
Changes
Modified README.md from [dd3a0fa902] to [163264c81b].
|
| < < < < < < < < < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | <h1 id="table-of-contents">Table of Contents</h1> * [What is ObjFW?](#what) * [Installation](#installation) * [macOS and iOS](#macos-and-ios) * [Building as a framework](#building-framework) * [Using the macOS or iOS framework in Xcode](#framework-in-xcode) * [Broken Xcode versions](#broken-xcode-versions) * [Windows](#windows) * [Getting MSYS2](#getting-msys2) * [Updating MSYS2](#updating-msys2) * [Installing MinGW-w64 using MSYS2](#installing-mingw-w64) * [Getting, building and installing ObjFW](#steps-windows) * [Nintendo DS, Nintendo 3DS and Wii](#nintendo) * [Nintendo DS](#nintendo-ds) * [Nintendo 3DS](#nintendo-3ds) * [Wii](#wii) * [Amiga](#amiga) * [Writing your first application with ObjFW](#first-app) * [Bugs and feature requests](#bugs) * [Commercial use](#commercial-use) <h1 id="what">What is ObjFW?</h1> ObjFW is a portable, lightweight framework for the Objective-C language. It enables you to write an application in Objective-C that will run on any [platform](PLATFORMS.md) supported by ObjFW without having to worry about differences between operating systems or various frameworks you would otherwise need if you want to be portable. It supports all modern Objective-C features when using Clang, but is also compatible with GCC ≥ 4.6 to allow maximum portability. ObjFW is intentionally incompatible with Foundation. This has two reasons: * GNUstep already provides a reimplementation of Foundation, which is only compatible to a certain degree. This means that a developer still needs to care about differences between frameworks if they want to be portable. The idea behind ObjFW is that a developer does not need to concern themselves with portablility and making sure their code works with multiple frameworks: Instead, if it works it ObjFW on one platform, they can reasonably expect it to also work with ObjFW on another platform. ObjFW behaving differently on different operating systems (unless inevitable because it is a platform-specific part, like the Windows Registry) is considered a bug and will be fixed. * Foundation predates a lot of modern Objective-C concepts. The most prominent one is exceptions, which are only used in Foundation as a replacement for `abort()`. This results in cumbersome error handling, especially in initializers, which in Foundation only return `nil` on error with no indication of what went wrong. It also means that the return of every `init` call needs to be checked against `nil`. But in the wild, nobody actually checks *each and every* return from `init` against `nil`, leading to bugs. ObjFW fixes this by making exceptions a first class citizen. ObjFW also comes with its own lightweight and extremely fast Objective-C runtime, which in real world use cases was found to be significantly faster than both GNU's and Apple's runtime. <h1 id="installation">Installation</h1> To install ObjFW, just run the following commands: $ ./configure $ make |
︙ | ︙ |