Skip to content
Gokul Nair edited this page Apr 13, 2021 · 2 revisions

Do follow our blog pages ๐Ÿ“ƒ

Loafjet ๐Ÿš€

Versions Badgse Platform Badge badge Badgse

About ๐Ÿ“’

Loafjet is a light weight Toast(Loaf) generator library which allows the user to add customised Toasts to their projects. Loafjet comes with various types of Toast Animations as well as Toast Positions. It can be used to add gradient and plain toasts. Loafjet comes with extra features like Popup Card and Loading Indicator which can be customised according to your needs.

Now Customise Like Apple ๏ฃฟ !

Airpods Detection Silent Normal
Screenshot 2021-01-27 at 2 04 10 AM Screenshot 2021-01-27 at 2 04 10 AM Screenshot 2021-01-27 at 2 04 10 AM

Installation ๐ŸŒ

Loafjet is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'Loafjet'

Playground ๐Ÿ’ป

  • I've provided a demo project to showcase the uses of Loafjet! Simply clone this repo, and open Loafjet.xcworkspace.
  • Run pod install.
  • Here you can see and experiment custom Loaf styles in Examples.swift.

How To Use ๐Ÿ“ ?

From any view controller, a Loaf can be presented by following this two steps:

1. Import Library ๐Ÿ—ณ

 import Loafjet

2. Call Loafjet ๐Ÿ“ž

Loaf.PlainLoaf(message: "Message goes here", position: .Bottom, animationDirection: .Bottom, loafjetView: View)

Result: ๐Ÿ’ฏ

Plain Default Loaf
Screenshot 2021-01-27 at 12 31 14 PM
  • This is the most basic Loafjet that you can make with least line of code ๐Ÿ‘†.
  • Below all Loafjet types are mentioned , have a look on it ๐Ÿ˜Š.

Plain Loaf

* With Default Parameters ๐Ÿ“— 

 Loaf.PlainLoaf(message: String, position: loafPosition, animationDirection: loafAnimation, loafjetView: UIView)

* Without Default Parameters ๐Ÿ“˜

Loaf.PlainLoaf(message: String, position:LoafPosition, loafWidth:CGFloat , loafHeight:CGFloat, cornerRadius: CGFloat, fontStyle: String, fontSize: CGFloat, bgColor: UIColor, fontColor: UIColor, alphaValue:CGFloat, loafImage: String? , animationDirection: LoafAnimation , duration: TimeInterval, loafjetView: UIView)

Gradient Loaf

* With Default Parameters ๐Ÿ“—

Loaf.GradientLoaf(message: String, position: LoafPosition, bgColor1: UIColor, bgColor2: UIColor, fontColor: UIColor, loafImage: String?, animationDirection: loafAnimation, loafjetView: UIView)

* Without Default Parameters ๐Ÿ“˜

Loaf.GradientLoaf(message: String, position:LoafPosition, loafWidth:CGFloat, loafHeight:CGFloat, cornerRadius: CGFloat, fontStyle: String, fontSize: CGFloat, bgColor1: UIColor, bgColor2: UIColor, fontColor: UIColor, loafImage: String?, animationDirection: LoafAnimation, duration: TimeInterval, loafjetView: UIView)

Popup Card

* With Default Parameters ๐Ÿ“—

Loaf.PopupCard(message: String, position: LoafPosition, bgColor1: UIColor, bgColor2: UIColor, fontColor: UIColor, loafImage: String?, blurEffect: UIBlurEffectStyle?, loafjetView: UIView)

* Without Default Parameters ๐Ÿ“˜

Loaf.PopupCard(message: String, position:LoafPosition, loafWidth:CGFloat, loafHeight:CGFloat, cornerRadius: CGFloat, fontStyle: String, fontSize: CGFloat, bgColor1: UIColor, bgColor2: UIColor, fontColor: UIColor, loafImage: String?, duration: TimeInterval, blurEffect: UIBlurEffectStyle?, loafjetView: UIView)

Dash Board

* With Default Parameters ๐Ÿ“—

Loaf.dashBoard(dashImage: String, dashTitle: String, dashContent: String, dashButtonTitle: String, mainView: UIView)

* Without Default Parameters ๐Ÿ“˜

Loaf.dashBoard(dashSpacing: CGFloat, dashRadius: CGFloat, dashColor: UIColor, dashImage: String, dashImageRadius: CGFloat, dashTitle: String, dashTitleColor: UIColor, dashContent: String, dashContentColor: UIColor, dashButtonTitle: String, dashButtonTitleColor: UIColor, dashButtonColor: UIColor, dashButtonRadius: CGFloat, dashButtonBorderColor: UIColor, dashButtonBorderWidth: CGFloat, dashDuration: TimeInterval, mainView: UIView)

LoafWheel

* With Default Parameters ๐Ÿ“—

 Loaf.LoafWheel(message: String, bgColor1: UIColor, bgColor2: UIColor, loafWheelView: UIView)

* Without Default Parameters ๐Ÿ“˜

Loaf.LoafWheel(message: String, loafWidth:CGFloat, loafHeight:CGFloat, cornerRadius:CGFloat, bgColor1:UIColor, bgColor2:UIColor, fontStyle: String, fontSize: CGFloat, fontColor: UIColor, duration: TimeInterval, wheelStyle: UIActivityIndicatorViewStyle, blurEffect: UIBlurEffectStyle ,loafWheelView: UIView)
  • Loafwheel Demo Photo ๐ŸŒ
  • Calling LoafWheel Dismissal is required when LoafWheel is used for Dynamic Processingโ•.

LoafWheel Dismissal ๐Ÿ“•

Loaf.dismissWheel(loafWheelView:UIView)

Don't want to use CocoaPodsโ—๏ธ

I have a solution ๐Ÿ‘€
  • Add this Loaf.swift file into your project.
  • Now you are ready to use Loafjet ๐Ÿš€.
  • Remaining steps are same ๐Ÿ˜.
  • Do read the documentation till the end to get a reward ๐ŸŽ from Loafjet Organisation.

Parameters ๐ŸŽš

Parameter Definition
message Message to show on Loaf
position Position of Loaf
loafWidth Loaf Width
loafHeight Loaf Height
cornerRadius CornerRadius of Loaf
fontStyle Font Style of Message
fontSize Font size of Message
bgColor Background Color of Loaf
Parameter Definition
alphaValue Opacity value for Loaf's background
loafImage Image on Loaf
duration Loaf Duration
animationDirection Loaf Animation type
blurEffect Blur effect type
wheelStyle Wheel Style
loafWheelView View on which LoafWheel is running
loafjetView View on which Loaf is presented

Combination of Position and Animations ๐Ÿ“™

  • Customise your Loaf according to the below given chart ๐ŸŽ›.
Position & Animation Left Right Top Bottom
Top โœ… โœ… โœ… โŒ
Centre โœ… โœ… โŒ โŒ
Bottom โœ… โœ… โŒ โœ…
  • The above mentioned โŒ means that particular combination of position & animation won't be working accurately .

Snapshots ๐Ÿ“ธ

Plain(Top) Plain(Bottom) Plain(Centre) Plain(Centre)
Screenshot 2021-01-27 at 1 57 03 AM Screenshot 2021-01-27 at 1 58 44 AM Screenshot 2021-01-27 at 1 57 43 AM Screenshot 2021-01-27 at 1 58 23 AM
Gradient(Top) Gradient(Bottom) Gradient(Centre) Gradient(Centre)
Screenshot 2021-01-27 at 2 01 02 AM Screenshot 2021-01-27 at 2 00 11 AM Screenshot 2021-01-27 at 2 00 25 AM Screenshot 2021-01-27 at 2 00 46 AM
  • Above shown are few possible ways, you can customise according to your need (Customisation shown below).

Customisation ๐Ÿ› 

  • Loafjet offers you a wide variety of customisation, select a style and apply your creativity on it.
  • This are some possible ways, "How Loafjet can be used ?".

Snapshots ๐Ÿ“ท

Do Not Disturb Information Warning
Screenshot 2021-01-27 at 2 04 10 AM Screenshot 2021-01-27 at 2 19 10 AM Screenshot 2021-01-27 at 2 04 32 AM
Success Error Device Detection
Screenshot 2021-01-27 at 2 04 43 AM Screenshot 2021-01-27 at 2 05 00 AM Screenshot 2021-01-27 at 2 05 14 AM

Loafjet +

Additional features

  • Dash Board,Gradient Loafwheel & Popup card are the additional customisation which you get in Loafjet๐Ÿฅณ.
Popup Card Loaf Wheel

Dash Board

  • These are some possible ways of customisation ๐Ÿ’ก
Loafjet Proprietary Alert Style Successful Style
Screenshot 2021-01-27 at 2 04 10 AM Screenshot 2021-01-27 at 2 04 10 AM Screenshot 2021-01-27 at 2 04 10 AM

Dark \ Light Mode Support ๐Ÿ”ฆ

Dark Mode Light Mode
Screenshot 2021-01-27 at 2 04 10 AM Screenshot 2021-01-27 at 2 04 10 AM
  • The above shown are some possible ways, How you can customise?, do try making your own and send it to us here ๐Ÿ“ฒ
  • What are you waiting for, write pod Loafjet and pod install it .
  • Done?, Now enjoy using Loafjet๐Ÿš€.

Portrait + Landscape Support ๐Ÿ”„

  • Loafjet is made with Landscape + Portrait support* ๐Ÿ”“.
  • Now You can use your favourite Loaf without taking care of orientation๐ŸŒ€.
  • Have a look on your favourite Loafjet supports ๐Ÿ“‡
Loafjet Portrait Landscape
Plain Loaf โœ… โœ…
Gradient Loaf โœ… โœ…
Popup Card โœ… โœ…
Dash Board โœ… โŒ
Loaf Wheel โœ… โœ…
  • Other than Dash board all the Loafjets support every type of orientation ๐ŸŽš.
  • Dash Board Landscape support will be added soon, stay tuned ๐Ÿ’ป

Video Demo ๐ŸŽฅ

Top(Top) Bottom(Bottom)
Centre(Right) Centre(Left)
  • These are some possible Position X Animation combination, Loafjet supports various other combinations too.

Instructions โš ๏ธ

  • At a time you can only use one Loaf(Simultaneous use is allowed).
  • Customise Loaf Position and Anmation according to the above given table.
  • Use .greatestFiniteMagnitude in duration to get an infinte loader.
  • To dismiss the loader use Loaf.dismissWheel(LoafWheelView:UIView).
  • For certain colors and blur effect particular iOS version is required, So to solve it use the below code (By default Xcode will show you both the fix).
// iOS versions will varry 
if #available(iOS 10.0, *) {. 
 // write the code to run
 }
 else {
 print("Error Message")
}

Or

// iOS versions will varry 
 @available(iOS 10.0, *)
  • Test Run of few Loafjets are given, have a look on it (Running all Loafjets at a time may lead to irregular functioning!).

Note ๐Ÿ”ด

  • Currently 'Loafjet' dont support SF Symbols, if you need it just raise an issue and I will try to add it โš“๏ธ.
  • The Loafimage you add must be present in the Images.xcassets file .
  • Loafimages which you add must be of A x A Size(Else images may get cutout!).
  • In the Test Run make sure you don't run all the Loafjets at a time, wait for one whole Loafjet to complete its task, then go for next.
  • All the Loafjets are created with default parameters too, so notice carefully which one you are using (Functions with and without default parameters are shown โฌ†๏ธ).
  • Loafjet is still in developement stage, you might face some bugs; do create an issue and inform usโ˜ฎ๏ธ.

Author ๐Ÿ˜Š

Gokul Nair

License โš–๏ธ

Loafjet is available under the MIT license. See the LICENSE file for more info.

How to Contribute ๐Ÿ–‹

  • Run the app - Steps are mentioned above.
  • If you face issues in any step open a new issue.
  • To fix issues: Fork this repository, make your changes and make a Pull Request.

Requirements โ•

  • Device running on iOS/iPadOS 12.0+ versions ๐Ÿ“ฑ.
  • Swift 5.1+ ๐Ÿ’ป

Community ๐Ÿ•

  • Want to be a part of our Organisation ๐Ÿš€, then:
  • Mail us here โœ‰๏ธ
  • Do mention the following things:
    1. Reason
    2. Motive
    3. Skills
    4. What you liked abou Loafjetโค๏ธ
  • We are eager to read you mailโšก๏ธ!

Like the Project ?

If you like using any of my projects or like what I'm doing, please consider backing me with appreciating my work: Message me๐Ÿฅฐ

BMC logo+wordmark - Black

OR

Drop a star โญ if you find this project interesting!

If you โค๏ธ the project then there is a gift for you:

  • Gift From Loafjet Organisation
  • Set the following image as your iPhone's Lock Screen wallpaper and see the magic ๐Ÿช„.
  • Thank Me later by giving a โญ๏ธ to Loafjet๐Ÿš€ .

Made with โค๏ธ in ๐Ÿ‡ฎ๐Ÿ‡ณ By Gokul Nair