swift-用RXSwift写的登陆及第三方登陆MMVV框架以及Alamofire请求部分的封装面向协议和枚举

在Swift编程中,开发者经常利用各种工具和框架来提高代码的可读性、可维护性和模块化。本项目“swift-用RXSwift写的登陆及第三方登陆MMVV框架以及Alamofire请求部分的封装面向协议和枚举”是针对iOS应用开发的一种实践,它结合了RXSwift、Alamofire和面向协议编程以及枚举的设计思想,旨在创建一个高效且易于扩展的登录和第三方登录系统。 RXSwift是一个强大的响应式编程库,它基于ReactiveX设计模式,使得事件处理和数据流变得更加简洁和优雅。在这个项目中,RXSwift被用来处理登录过程中的各种事件,如用户输入、网络请求的响应等,通过创建观察者(Observer)和可观察序列(Observable),可以实现异步操作的同步化管理,减少回调地狱,提升代码的可读性和可测试性。 MMVV(Model-ModelView-ViewModel)是一种轻量级的架构模式,它是MVC(Model-View-Controller)的变体,强调数据模型和视图模型之间的解耦。在这个项目中,MMVV模式用于组织代码结构,Model层负责数据处理和业务逻辑,ModelView作为Model和View之间的桥梁,ViewModel则处理与UI交互相关的逻辑,这样可以更好地分离关注点,提高代码复用。 Alamofire是一个流行的HTTP网络请求库,基于Swift编写,提供了简单易用的接口来发起网络请求。在该项目中,Alamofire被封装以处理登录所需的API调用,如验证用户名和密码,或者获取第三方登录的授权信息。封装的好处是,可以隐藏网络请求的复杂性,统一错误处理,并为其他功能提供一致的接口。面向协议编程是Swift的一个重要特性,它允许我们定义一组方法和属性的蓝图,然后在多个类型中遵循这些协议,实现多态性。在这个项目中,面向协议编程可能被用来定义登录和第三方登录的一系列标准接口,确保所有登录方式都遵循相同的行为规范。枚举(Enum)在Swift中是一个强大的类型,它可以表示一组相关的值。在这里,可能用于表示不同的登录状态(例如,未登录、正在登录、登录成功、登录失败等),或者第三方登录的不同提供商(如Facebook、Google等)。通过枚举,我们可以为每个状态或提供商提供清晰的命名,同时可以添加关联值来存储额外的信息。这个项目展示了如何利用Swift的高级特性,如RXSwift、Alamofire、MMVV架构、面向协议编程和枚举,来构建一个健壮且灵活的登录系统。这样的实践对于提升iOS应用开发的效率和质量具有重要意义,也体现了Swift语言的强大之处。通过学习和理解这个项目,开发者可以进一步提升自己的Swift编程技能,并将这些最佳实践应用到自己的项目中。
folder
swift-用RXSwift写的登陆及第三方登陆MMVV框架以及Alamofire请求部分的封装面向协议和枚举 预估大小:445个文件
file
Podfile.lock 1KB
file
README.md 5KB
file
123.png 124KB
file
README.md 1KB
file
LICENSE 1KB
file
LayoutConstraint.swift 2KB
file
SnapKit.swift 2KB
file
ConstraintRelation.swift 2KB
file
EdgeInsets.swift 2KB
file
ConstraintAttributes.swift 7KB
file
ConstraintItem.swift 2KB
file
Constraint.swift 21KB
file
View+SnapKit.swift 8KB
file
ConstraintMaker.swift 9KB
file
Debugging.swift 7KB
file
ConstraintDescription.swift 27KB
file
ViewController+SnapKit.swift 2KB
file
README.md 9KB
file
LICENSE 1KB
file
SwiftyJSON.swift 36KB
file
project.pbxproj 207KB
file
Pods-RxSwiftDemo.xcscheme 2KB
file
RxCocoa.xcscheme 2KB
file
RxBlocking.xcscheme 2KB
file
SnapKit.xcscheme 2KB
file
SwiftyJSON.xcscheme 2KB
file
Alamofire.xcscheme 2KB
file
RxSwift.xcscheme 2KB
file
Manifest.lock 1KB
file
README.md 4KB
file
ObservableConvertibleType+Blocking.swift 618B
file
RunLoopLock.swift 2KB
file
BlockingObservable.swift 596B
file
BlockingObservable+Operators.swift 6KB
file
LICENSE.md 1KB
file
README.md 4KB
file
RxCocoa.h 462B
file
UIView+Rx.swift 733B
file
UIControl+Rx.swift 3KB
file
UITextView+Rx.swift 1KB
file
UIGestureRecognizer+Rx.swift 2KB
file
UIActivityIndicatorView+Rx.swift 662B
file
UISearchBar+Rx.swift 1KB
file
UIImagePickerController+Rx.swift 1KB
file
UIApplication+Rx.swift 653B
file
UISlider+Rx.swift 613B
file
ItemEvents.swift 269B
file
NSTextStorage+Rx.swift 1KB
file
UIButton+Rx.swift 756B
file
RxTableViewReactiveArrayDataSource.swift 3KB
file
RxCollectionViewReactiveArrayDataSource.swift 3KB
file
UITableView+Rx.swift 10KB
file
UIStepper+Rx.swift 607B
file
UISegmentedControl+Rx.swift 700B
file
UIRefreshControl+Rx.swift 662B
file
UISwitch+Rx.swift 584B
file
RxTableViewDataSourceType.swift 789B
file
RxCollectionViewDataSourceType.swift 839B
file
UILabel+Rx.swift 778B
file
RxCollectionViewDataSourceProxy.swift 4KB
file
RxScrollViewDelegateProxy.swift 3KB
file
RxImagePickerDelegateProxy.swift 1KB
file
RxTextStorageDelegateProxy.swift 983B
file
RxTableViewDataSourceProxy.swift 4KB
file
RxCollectionViewDelegateProxy.swift 904B
file
RxSearchBarDelegateProxy.swift 818B
file
RxTextViewDelegateProxy.swift 1KB
file
RxTableViewDelegateProxy.swift 823B
file
UITextField+Rx.swift 637B
file
UIBarButtonItem+Rx.swift 2KB
file
UIDatePicker+Rx.swift 626B
file
UIScrollView+Rx.swift 2KB
file
UICollectionView+Rx.swift 9KB
file
UIImageView+Rx.swift 1KB
file
ControlTarget.swift 2KB
file
DeallocObservable.swift 400B
file
KVOObserver.swift 1KB
file
MessageSentObserver.swift 2KB
file
KVOObservable.swift 5KB
file
NSObject+Rx+KVORepresentable.swift 1KB
file
NSNotificationCenter+Rx.swift 1KB
file
NSObject+Rx+RawRepresentable.swift 2KB
file
NSURLSession+Rx.swift 8KB
file
NSObject+Rx.swift 9KB
file
_RXDelegateProxy.m 4KB
file
CLLocationManager+Rx.swift 6KB
file
KVORepresentable+Swift.swift 2KB
file
KVORepresentable.swift 690B
file
SectionedViewDataSourceType.swift 634B
file
_RX.h 4KB
file
ControlProperty+Driver.swift 755B
file
Driver+Operators+arity.swift 17KB
file
Driver.swift 8KB
file
Driver+Operators.swift 20KB
file
Driver+Subscription.swift 4KB
file
Variable+Driver.swift 561B
file
ControlEvent+Driver.swift 747B
file
ObservableConvertibleType+Driver.swift 2KB
file
ControlProperty.swift 4KB
file
ControlEvent.swift 3KB
file
UIBindingObserver.swift 2KB
file
_RXKVOObserver.h 834B
file
KVORepresentable+CoreGraphics.swift 2KB
file
Logging.swift 515B
file
RxTarget.swift 750B
file
_RXObjCRuntime.m 46KB
file
_RX.m 152B
file
NSLayoutConstraint+Rx.swift 884B
file
Observable+Bind.swift 3KB
file
DelegateProxyType.swift 9KB
file
_RXKVOObserver.m 1KB
file
DelegateProxy.swift 5KB
file
RxCLLocationManagerDelegateProxy.swift 847B
file
_RXObjCRuntime.h 4KB
file
_RXDelegateProxy.h 514B
file
RxCocoa.swift 12KB
file
LICENSE.md 1KB
file
WeiboSDK.podspec.json 763B
file
SnapKit-umbrella.h 136B
file
SnapKit.modulemap 104B
file
Info.plist 829B
file
SnapKit-dummy.m 118B
file
SnapKit-prefix.pch 48B
file
SnapKit.xcconfig 528B
file
SwiftyJSON-umbrella.h 142B
file
SwiftyJSON-prefix.pch 48B
file
SwiftyJSON-dummy.m 124B
file
Info.plist 828B
file
SwiftyJSON.modulemap 110B
file
SwiftyJSON.xcconfig 531B
file
RxBlocking-dummy.m 124B
file
RxBlocking.xcconfig 609B
file
RxBlocking-prefix.pch 48B
file
RxBlocking-umbrella.h 142B
file
RxBlocking.modulemap 110B
file
Info.plist 828B
file
RxCocoa-prefix.pch 48B
file
RxCocoa-dummy.m 118B
file
RxCocoa.modulemap 104B
file
RxCocoa.xcconfig 606B
file
Info.plist 828B
file
RxCocoa-umbrella.h 255B
file
Pods-RxSwiftDemo.debug.xcconfig 2KB
file
Pods-RxSwiftDemo-resources.sh 5KB
file
Pods-RxSwiftDemo-acknowledgements.markdown 7KB
file
Pods-RxSwiftDemo-frameworks.sh 4KB
file
Pods-RxSwiftDemo-umbrella.h 154B
file
Pods-RxSwiftDemo-acknowledgements.plist 8KB
file
Info.plist 828B
file
Pods-RxSwiftDemo-dummy.m 136B
file
Pods-RxSwiftDemo.release.xcconfig 2KB
file
Pods-RxSwiftDemo.modulemap 122B
file
RxSwift-umbrella.h 136B
file
RxSwift-prefix.pch 48B
file
RxSwift-dummy.m 118B
file
Info.plist 828B
file
RxSwift.xcconfig 528B
file
RxSwift.modulemap 104B
file
Alamofire.modulemap 108B
file
Alamofire-dummy.m 122B
file
Alamofire.xcconfig 530B
file
Info.plist 828B
file
Alamofire-umbrella.h 140B
file
Alamofire-prefix.pch 48B
file
README.md 7KB
folder
LICENSE 文件夹
file
WBHttpRequest+WeiboUser.h 20KB
file
WBSDKBasicButton.h 411B
file
mfp.cer 577B
file
countryList 826B
file
common_button_big_blue_highlighted@2x.png 395B
file
timeline_relationship_icon_addattention@2x.png 1KB
file
sdk_weibo_logo.png 1KB
file
close.png 2KB
file
common_icon_arrow@2x.png 193B
file
timeline_relationship_icon_addattention@3x.png 181B
file
login_country_background_highlighted@2x.png 114B
file
navigationbar_background_os7.png 285B
file
timeline_relationship_icon_attention@2x.png 1KB
file
common_button_white.png 400B
file
alert_error_icon@2x.png 342B
file
navigationbar_background_os7@2x.png 138B
file
common_button_big_blue_disable@2x.png 396B
file
compose_toolbar_background.png 284B
file
navigationbar_background.png 290B
file
login_background@2x.png 232B
file
timeline_relationship_icon_addattention.png 362B
file
common_button_white@2x.png 367B
file
compose_keyboardbutton_background.png 473B
file
verify_code_button_highlighted@2x.png 1KB
file
sdk_weibo_logo@3x.png 3KB
file
verify_code_button_highlighted@3x.png 2KB
file
empty_failed.png 3KB
file
progresshud_background@2x.png 188B
file
common_button_white_highlighted@2x.png 378B
file
verify_code_button@2x.png 1KB
file
login_country_background@2x.png 114B
file
navigationbar_background@2x.png 142B
file
empty_failed@2x.png 4KB
file
sdk_weibo_logo@2x.png 3KB
file
common_button_white_highlighted.png 409B
file
common_button_big_blue@2x.png 351B
file
alert_success_icon@2x.png 419B
file
close@2x.png 5KB
file
compose_keyboardbutton_background@2x.png 1KB
file
timeline_relationship_icon_attention@3x.png 507B
file
verify_code_button@3x.png 2KB
file
timeline_relationship_icon_attention.png 413B
file
compose_toolbar_background@2x.png 943B
file
WBHttpRequest+WeiboGame.h 7KB
file
WeiboSDK+Statistics.h 3KB
file
WeiboSDK.h 21KB
file
WBSDKRelationshipButton.h 1KB
file
WBHttpRequest.h 6KB
file
WeiboUser.h 4KB
file
WBSDKCommentButton.h 1KB
file
libWeiboSDK.a 24.14MB
file
WBHttpRequest+WeiboToken.h 1KB
file
WBHttpRequest+WeiboShare.h 4KB
file
WBHttpRequest+WeiboUser.h 55B
file
WBSDKBasicButton.h 48B
file
WBHttpRequest+WeiboGame.h 55B
file
WeiboSDK+Statistics.h 51B
file
WeiboSDK.h 40B
file
WBSDKRelationshipButton.h 55B
file
WBHttpRequest.h 45B
file
WeiboUser.h 41B
file
WBSDKCommentButton.h 50B
file
WBHttpRequest+WeiboToken.h 56B
file
WBHttpRequest+WeiboShare.h 56B
file
WBHttpRequest+WeiboUser.h 55B
file
WBSDKBasicButton.h 48B
file
WBHttpRequest+WeiboGame.h 55B
file
WeiboSDK+Statistics.h 51B
file
WeiboSDK.h 40B
file
WBSDKRelationshipButton.h 55B
file
WBHttpRequest.h 45B
file
WeiboUser.h 41B
file
WBSDKCommentButton.h 50B
file
WBHttpRequest+WeiboToken.h 56B
file
WBHttpRequest+WeiboShare.h 56B
file
README.md 4KB
file
LICENSE.md 1KB
file
SerialDispatchQueueScheduler.swift 7KB
file
HistoricalScheduler.swift 716B
file
OperationQueueScheduler.swift 2KB
file
ConcurrentMainScheduler.swift 3KB
file
ImmediateScheduler.swift 1KB
file
MainScheduler.swift 2KB
file
DispatchQueueSchedulerQOS.swift 1KB
file
HistoricalSchedulerTimeConverter.swift 3KB
file
InvocableType.swift 295B
file
AnonymousInvocable.swift 355B
file
ScheduledItemType.swift 253B
file
InvocableScheduledItem.swift 458B
file
ScheduledItem.swift 730B
file
RecursiveScheduler.swift 5KB
file
VirtualTimeScheduler.swift 8KB
file
VirtualTimeConverterType.swift 3KB
file
CurrentThreadScheduler.swift 5KB
file
ConcurrentDispatchQueueScheduler.swift 5KB
file
SchedulerServices+Emulation.swift 2KB
file
SingleAsync.swift 2KB
file
Buffer.swift 3KB
file
DistinctUntilChanged.swift 2KB
file
SubscribeOn.swift 2KB
file
Catch.swift 4KB
file
AnonymousObservable.swift 1KB
file
Timeout.swift 3KB
file
Producer.swift 731B
file
Zip.swift 3KB
file
CombineLatest+arity.swift 31KB
file
AddRef.swift 1KB
file
Error.swift 477B
file
DelaySubscription.swift 1KB
file
Using.swift 2KB
file
Amb.swift 3KB
file
RefCount.swift 2KB
file
ShareReplay1.swift 3KB
file
CombineLatest+CollectionType.swift 4KB
file
StartWith.swift 638B
file
Generate.swift 2KB
file
Deferred.swift 1KB
file
Switch.swift 5KB
file
TakeUntil.swift 3KB
file
Range.swift 1KB
file
Take.swift 4KB
file
ObserveOn.swift 3KB
file
Sample.swift 3KB
file
SkipUntil.swift 3KB
file
WithLatestFrom.swift 3KB
file
Do.swift 1KB
file
Concat.swift 2KB
file
Window.swift 4KB
file
RetryWhen.swift 5KB
file
TakeLast.swift 2KB
file
Merge.swift 12KB
file
Repeat.swift 1KB
file
Skip.swift 3KB
file
ObserveOnSerialDispatchQueue.swift 2KB
file
ToArray.swift 1KB
file
SkipWhile.swift 3KB
file
Just.swift 2KB
file
Timer.swift 2KB
file
TakeWhile.swift 3KB
file
Zip+arity.swift 33KB
file
ConnectableObservable.swift 3KB
file
ShareReplay1WhileConnected.swift 2KB
file
Debug.swift 2KB
file
Map.swift 4KB
file
Zip+CollectionType.swift 5KB
file
Never.swift 339B
file
Reduce.swift 2KB
file
Scan.swift 2KB
file
Filter.swift 2KB
file
Sink.swift 1KB
file
Throttle.swift 3KB
file
Multicast.swift 2KB
file
Sequence.swift 1KB
file
Empty.swift 371B
file
CombineLatest.swift 3KB
file
ElementAt.swift 2KB
file
Observable+Single.swift 11KB
file
Observable+Multiple.swift 14KB
file
Observable+Debug.swift 930B
file
Observable+StandardSequenceOperators.swift 13KB
file
Observable+Binding.swift 8KB
file
Observable+Time.swift 11KB
file
Observable+Concurrency.swift 2KB
file
Observable+Creation.swift 9KB
file
Observable+Aggregate.swift 3KB
file
Errors.swift 2KB
file
NAryDisposable.swift 256B
file
SerialDisposable.swift 2KB
file
SubscriptionDisposable.swift 481B
file
AnonymousDisposable.swift 1KB
file
CompositeDisposable.swift 3KB
file
BooleanDisposable.swift 1KB
file
BinaryDisposable.swift 1KB
file
StableCompositeDisposable.swift 390B
file
DisposeBag.swift 2KB
file
DisposeBase.swift 396B
file
NopDisposable.swift 515B
file
SingleAssignmentDisposable.swift 2KB
file
RefCountDisposable.swift 3KB
file
ScheduledDisposable.swift 2KB
file
SynchronizedOnType.swift 421B
file
Lock.swift 3KB
file
SynchronizedUnsubscribeType.swift 309B
file
LockOwnerType.swift 367B
file
AsyncLock.swift 2KB
file
SynchronizedSubscribeType.swift 559B
file
SynchronizedDisposeType.swift 414B
file
ObservableConvertibleType.swift 531B
file
Disposable.swift 285B
file
Rx.swift 1KB
file
Event.swift 2KB
file
Observable+Extensions.swift 4KB
file
ImmediateSchedulerType.swift 1KB
file
Platform.Linux.swift 6KB
file
Platform.Darwin.swift 1KB
file
ObserverType.swift 1KB
file
RxMutableBox.swift 681B
file
String+Rx.swift 536B
file
PublishSubject.swift 3KB
file
BehaviorSubject.swift 4KB
file
SubjectType.swift 661B
file
Variable.swift 1KB
file
ReplaySubject.swift 6KB
file
AnyObserver.swift 2KB
file
ObserverBase.swift 740B
file
AnonymousObserver.swift 718B
file
TailRecursiveSink.swift 4KB
file
Bag.swift 7KB
file
PriorityQueue.swift 3KB
file
InfiniteSequence.swift 635B
file
Queue.swift 4KB
file
ObservableType.swift 2KB
file
ConnectableObservableType.swift 775B
file
SchedulerType.swift 3KB
file
Cancelable.swift 346B
file
Observable.swift 1KB
file
README.md 46KB
file
LICENSE 1KB
file
MultipartFormData.swift 26KB
file
Stream.swift 6KB
file
ParameterEncoding.swift 11KB
file
Error.swift 3KB
file
ServerTrustPolicy.swift 13KB
file
Validation.swift 7KB
file
Request.swift 20KB
file
Upload.swift 16KB
file
Download.swift 10KB
file
Response.swift 4KB
file
Timeline.swift 6KB
file
Result.swift 3KB
file
ResponseSerialization.swift 14KB
file
NetworkReachabilityManager.swift 9KB
file
Notifications.swift 2KB
file
Alamofire.swift 12KB
file
Manager.swift 33KB
file
contents.xcworkspacedata 229B
file
Info.plist 733B
file
RxSwiftDemoTests.swift 983B
file
ImageTextView.swift 3KB
file
AppDelegate.swift 3KB
file
Alamofire+Rx.swift 4KB
file
HomePageViewController.swift 342B
file
Main.storyboard 18KB
file
LaunchScreen.storyboard 2KB
file
UserDetailMange.swift 820B
file
Contents.json 339B
file
wechat@2x.png 4KB
file
wechat.png 2KB
file
qq.png 2KB
file
Contents.json 331B
file
qq@2x.png 4KB
file
Contents.json 62B
file
webo.png 2KB
file
Contents.json 335B
file
webo@2x.png 5KB
file
Contents.json 1KB
file
Info.plist 1KB
file
Network.swift 190B
file
WKConfigCenter.swift 2KB
file
LoginViewController.swift 4KB
file
success@2x.png 872B
file
error.png 371B
file
success.png 508B
file
error@2x.png 739B
file
MBProgressHUD.h 16KB
file
MBProgressHUD+Extend.m 2KB
file
MBProgressHUD.m 31KB
file
MBProgressHUD+Extend.h 597B
file
ThirdAPIHeader.swift 2KB
file
ViewController.swift 643B
file
RxSwiftDemo-Bridging-Header.h 354B
file
LoginViewModel.swift 8KB
file
contents.xcworkspacedata 156B
file
project.pbxproj 30KB
file
RxSwiftDemo.xcscheme 4KB
file
xcschememanagement.plist 663B
file
Podfile 512B
file
RxSwiftDemoUITests.swift 1KB
file
Info.plist 733B
...
zip 文件大小:12.79MB