Luminous alternatives and similar libraries
Based on the "Device" category
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Luminous or a related project?
To run the example project, clone the repo, and run
pod install from the Example directory first.
- iOS 8+
- Swift 5
- Xcode 10
Luminous is available through CocoaPods. To install it, simply add the following line to your Podfile:
import Luminous wherever you want to use the library.
Download the project and drag the
Reachability.swift files into your project. The library depends from the Deviice framework. Download it and do the same with it (dragging
Luminous has only 1 dependency : Deviice which is my other library useful to know on which device your app is running on, plus some nice information.
Migration to version 2
In version 2, I've changed some things and added others. An important change has been made to the structure of the library, useful for who wants to contribute to the project and to who wants to fork it. I created a specific file (
extension) for every substruct.
LMBatteryStatehas been renamed to
LMSizeScalehas been renamed to
Luminous.Carrier.allowsVOIPhas been renamed to
Luminous.Hardware.physicalMemory(withScale: _)now returns a
Doubleand no more a
- All the structs are now accessible using
Luminous.<substruct>as I removed the
Systemmiddleware struct since it became useless
NSLocaleis no more used in the library. I switched to
Disksubstruct now has a new method to return the
usedSpacethat takes a
MeasureUnitparameter as input. The old vars that returned
Stringand percentage have been deprecated and will be removed in the next version
Audio(thanks to GregOriol)
SystemVersion(from version 2.1.0) : this has been added under the
Hardwarestruct and represents the system version
What is Luminous?
Luminous is the son of ALSystemUtilities library which is no longer maintained (it still is my best library on github). I got ideas from that one and I wrote everything from scratch in Swift adding some new feature and designing it in a different way thanks to the differences between Objective-C and Swift.
Luminous is a big library that I like to consider an "Helper Library". It provides a lot of information about the system and has some features that can speed up significantly the development process.
It is composed by 3 parts :
- system information (
- utils (some handy method like the email check)
- custom app configuration
Luminous is no more composed by 3 parts as I think that a library has to serve one and one only purpose. I removed the Utils and AppConfiguration structs. I'm sorry for any kind of inconvenience this could cause to everyone is using it, but I think that it's the right choice.
Here I provide tons of information about the system and you can access them using the notation
There are 11 different substructs here from which you can get information :
SSID(deprecated on iOS 13)
systemVersion(this is a
SystemVersionstruct from version 2.1.0, no more a
current(returns a Deviice object)
I'm sure you're asking yourself "Why this library is called Luminous?". Well, stop think about it. The reason is simple : I like the word "Luminous", it gives me a unique feeling of something that is bright and awesome! So, I chose to call this lib in that way! But you can think that "Luminous is because this library will light up your way of development speeding up it and giving you more time for yourself", this is more philosophical.
Any suggestion would be really appreciated. The library is designed using structs and static functions, but I'm still not sure of this choice. I'm struggling if the best is to use static functions or static vars, so this is the first point you can help me with.
Andrea Mario Lufino, email@example.com.
Luminous is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the Luminous README section above are relevant to that project's source code only.