All Projects → abdullahselek → Merhaba

abdullahselek / Merhaba

Licence: MIT License
Bonjour networking for discovery and connection between iOS, macOS and tvOS devices.

Programming Languages

objective c
16641 projects - #2 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Merhaba

QuizKit
⁉️ A framework for developing local or remote quiz apps for iOS or tvOS
Stars: ✭ 28 (-54.84%)
Mutual labels:  tvos
CombineCoreBluetooth
A wrapper API for CoreBluetooth using Combine Publishers
Stars: ✭ 50 (-19.35%)
Mutual labels:  tvos
Spine
Unofficial Spine runtime Swift library, allows you to play animations created in the Spine app (http://esotericsoftware.com).
Stars: ✭ 125 (+101.61%)
Mutual labels:  tvos
HorizontalStickyHeaderLayout
Horizontal UICollectionViewLayout with Sticky HeaderView
Stars: ✭ 70 (+12.9%)
Mutual labels:  tvos
TVOSPicker
A sweet horizontal picker view controller for tvOS.
Stars: ✭ 26 (-58.06%)
Mutual labels:  tvos
Servus
Ad-hoc peer-to-peer iOS library
Stars: ✭ 27 (-56.45%)
Mutual labels:  bonjour
SPConfetti
Show the confetti only when the user is having fun, and if not having fun, don't show it.
Stars: ✭ 187 (+201.61%)
Mutual labels:  tvos
quick-swift-check
Interoperability between Quick, Nimble and SwiftCheck.
Stars: ✭ 12 (-80.65%)
Mutual labels:  tvos
Jsonify
♨️A delightful JSON parsing framework.
Stars: ✭ 42 (-32.26%)
Mutual labels:  tvos
PotentCodables
🧪 PotentCodables - A potent set of implementations and extensions to the Swift Codable system
Stars: ✭ 32 (-48.39%)
Mutual labels:  tvos
Francis
Bonjour browser for macOS and iOS
Stars: ✭ 25 (-59.68%)
Mutual labels:  bonjour
Swiftfin
Native Jellyfin Client for iOS and tvOS
Stars: ✭ 457 (+637.1%)
Mutual labels:  tvos
Media
A beautiful and declarative cross-platform wrapper API for Apple's PhotoKit
Stars: ✭ 78 (+25.81%)
Mutual labels:  tvos
Ciao
Publish and discover services using Bonjour
Stars: ✭ 50 (-19.35%)
Mutual labels:  bonjour
WacOS
A Linux distribution that mimics MacOS (modern and classic) iOS, and other Apple operating systems, but is open, customizable, and free to use on non-apple hardware.
Stars: ✭ 18 (-70.97%)
Mutual labels:  tvos
carina-demo
Carina demo project.
Stars: ✭ 40 (-35.48%)
Mutual labels:  tvos
swift-standard-clients
Client declarations and live implementations for standard iOS managers
Stars: ✭ 28 (-54.84%)
Mutual labels:  tvos
mini-swift
Minimal Flux architecture written in Swift.
Stars: ✭ 40 (-35.48%)
Mutual labels:  tvos
SwiftUI-Shimmer
Shimmer is a super-light modifier that adds a shimmering effect to any SwiftUI View, for example, to show that an operation is in progress. It works well on light and dark modes, and across iOS, macOS, tvOS and watchOS.
Stars: ✭ 168 (+170.97%)
Mutual labels:  tvos
BlockiesSwift
Unique blocky identicons generator for Swift
Stars: ✭ 53 (-14.52%)
Mutual labels:  tvos

Merhaba

Build Status CocoaPods Compatible Carthage Compatible Coverage Status Platform License

Merhaba

Bonjour networking for discovery and connection between iOS, macOS and tvOS devices.

Features

  • Creating Service
  • Start & Stop Service
  • Stop Browsing
  • Create Connection with Another Service
  • Send Data
  • Send file from given file path
  • Send given text
  • Strong Events

Requirements

iOS 9.0+ / macOS 10.9+ / tvOS 9.0+

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate Merhaba into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Merhaba', '~> 1.2.1'
end

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

brew update
brew install carthage

To integrate Merhaba into your Xcode project using Carthage, specify it in your Cartfile:

github "abdullahselek/Merhaba" ~> 1.2.1

Run carthage update to build the framework and drag the built Merhaba.framework into your Xcode project.

Example Usage

Implement your class with MRBServerDelegate to handle Bonjour events

@interface ViewController : UIViewController<MRBServerDelegate>

Initiation of MRBServer

NSString *type = @"TestingProtocol";
self.server = [[MRBServer alloc] initWithProtocol:type];
self.server.delegate = self;

NSError *error = nil;
BOOL isStarted = [self.server start:&error];
NSLog(@"Check server started : %@", (isStarted) ? @"YES" : @"NO");

// Can handle error if not nil

Connect to selected service

[self.server connectToRemoteService:selectedService];

Sending data to selected service

NSData *data = [textToSend dataUsingEncoding:NSUTF8StringEncoding];
MRBServerErrorCode errorCode = [self.server sendData:data];
NSLog(@"Data sent with code : %ld", errorCode);

Handling incoming data with didAcceptData function

NSString *message = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Incoming message : %@", message);

Sending file at given path

MRBServerErrorCode code = [self.server sendFileAtPath:YOUR_FILE_PATH];

Send text

MRBServerErrorCode code = [self.mrbServer sendText:@"text"];

Stopping server

[self.server stop];

Stopping browsing for bonjour services

[self.server stopBrowser];

License

Merhaba is released under the MIT license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].