Home - UBogun/Xojo-iosLib GitHub Wiki
Welcome to the Xojo-iOSLib wiki!
iOSLib Use
Just copy the project folder (iOSLib) into your Xojo iOS project. Do not drag it over like written before! This may lead to renaming problems. Copy it into your clipboard and paste it into your app, that’s safe.
That's all you need to get started. You do not have to care about iOS classes and objects. For many frequently used features, you can use the Class Extension Modules together with Xojo objects and data types. There is of course some conversion involved in this. So whenever you like, you can also address the iOS Classes directly. You will find many hints on the demo views that are inluded.
Please note: This documentation is under (re-)construction. In the end, everything should be sorted by its framework. Currently it's a bit messy. Sorry – feel free to ask me if you find yourself confused.
Basics
Here you will find a few tutorial wiki pages for a better start:
- iOSLib general structure & conventions: What do you find where in iOSLib?
- UIView Basics: UIViews, in iOSLib AppleViews, are the class behind each visible control. The Xojo equivalent is a control. Here you find basic information about UIViews, their properties and (animation!) features.
iOSLib currently features:
Frameworks
-
AppleSharedCore is a folder containing items that are (almost or fully) identical in iOS and Mac OS X. It carries the following framework folders:
-
Accelerate: A framework for fast DSP, FFT and vector calculations. Optional! You can safely remove this framework if you want to.
-
AVFoundation: A framework featuring classes for handling audiovisual content.
-
CoreFoundation: A shared framework containing core classes common to iOS and OS X.
-
CoreGraphics: A framework module containing CoreGraphics constants, external API calls and structures.
-
CoreImage: Features near real-time image processing and analysis for still and video images.
-
Foundation: A framework module containing Foundation and Core Foundation constants, methods and structures for API calls.
-
LibSystem: Low level C functions, mainly for handling frameworks, and a few global convenience methods.
-
ObjectiveCRuntime: A framework module holding external methods and constants for Objective C Runtime calls.
-
QuartzCore: A framework module holding constants, external methods and structures for QuartzCore API calls, especially for CATransform3D structures.
-
UIKit: The main graphical framework of iOS, containing most of the controls and higher-level classes you will handle in a typical iOS app.
Optional (you can remove these folders)
- Security: The framework that features Keychain access, a way to store important user data unavailable to others. Technically not really part of Security, you will find here the description for TouchID handling too.
- SpriteKit: Apple's Framework for creating 2D games and physics simulations based on OpenGL ES.
Custom Classes
- AppleDataDetectorType: A helper class for the DataDetectors property of ApplebWebViews.
- iOSLibKeyboardEventDictionary: A helper class for the keyboard related events used by AppleWindow.
Custom Controls
- iOSLibCanvas: A full-featured custom control for drawings of all kind. Core is an AppleView/UIView object.
- iOSLibHTMLViewer: A full-featured custom control replacement for Xojo’s iOSHTMLViewer.
- iOSLibImageView: An extended iOSImageView replacement featuring properties for highlighted state and for animations.
- iOSLabeliOSLibEnhanced: A subcclass of iOSLabel with additional features.
- iOSLibTextField: A full-featured implementation of UITextField, replacement for iOSTextField.
- iOSLibTouchID: Custom class for easy unlocking by fingerprint.
Extension Modules
- iOSControlExtension: Frequently used UIView/animation features and access to the UIView/iOSLIbView object for every iOSControl.
- iOSHTMLViewerExtension: Easy access for UIWebView features for every iOSHTMLViewer.
- iOSImageViewExtension: Easy access to all of the advanced UIImageView features.
- iOSViewExtension: Frequently used UIViewController features and access to the UIVIewcontroller/iosLibViewController object and the UIView/iOSLibView object of a iOSView.
Conversion Modules
- BitwiseExtension: Bitwise manipulation for Integers.
- ColorExtension: Conversions between Color types and objects.
- MathExtension: Mathematical conversions and constants.
- PointExtension: Conversions between different Point structures.
- RectExtension: Conversions between different Rect structures.
- SizeExtension: Conversions between different Size structures.
Disclaimer
This software is delivered AS IS. You are free to use it in your project, modify it according to your needs and you are very welcome to share your contributions too. I can not guarantee for data loss, computer problems and all that stuff that may arise from using the classes and methods, but I do guarantee that I use them myself in my projects and have not experienced such. Therefore the usual legal warning: Use at your own risk!
Copyright & License
Written 2015 by Ulrich Bogun, xojoblog.me. This is a private project not connected to my job as german Xojo evangelist. This all is only possible because of the tremendous help of some extraordinary gurus sharing their wisdom on forum.xojo.com and, of course, the guys behind MacOSLib – without looking into it iOS declares would still be foreign to me. Therefore a copyright would be very stange and wrong. Again: iOSLib is free to use.
However, you surely can imagine this took me (and will probably take) a lot of time, and I want to continue refining the classes and adding more to them. If you use the classes and find them useful, feel absolutely free to send me a "keep it up"-contribution via PayPal to bogun (insert at sign) satzservice.de. The amount is completely up to you and every sum will be appreciated regardless of its height. If you cannot afford a few bucks or don't want to: Hey, that's still ok! Maybe you like to send me a line abot their use or add a "Uses iOSLib …" line to your splashscreen. And if not you’re still not a bad guy. Enjoy, share, contribute.