├── .DS_Store
├── .gitignore
├── HeartTrip.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ └── CoderBear.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcuserdata
│ └── CoderBear.xcuserdatad
│ └── xcschemes
│ ├── HeartTrip.xcscheme
│ └── xcschememanagement.plist
├── HeartTrip.xcworkspace
├── contents.xcworkspacedata
└── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── HeartTrip
├── .DS_Store
├── Application
│ ├── Assets.xcassets
│ │ ├── .DS_Store
│ │ ├── AppIcon.appiconset
│ │ │ ├── AppIcon20x20@2x.png
│ │ │ ├── AppIcon20x20@2x~ipad.png
│ │ │ ├── AppIcon20x20@3x.png
│ │ │ ├── AppIcon20x20~ipad.png
│ │ │ ├── AppIcon29x29@2x.png
│ │ │ ├── AppIcon29x29@2x~ipad.png
│ │ │ ├── AppIcon29x29@3x.png
│ │ │ ├── AppIcon29x29~ipad.png
│ │ │ ├── AppIcon40x40@2x.png
│ │ │ ├── AppIcon40x40@2x~ipad.png
│ │ │ ├── AppIcon40x40@3x.png
│ │ │ ├── AppIcon40x40~ipad.png
│ │ │ ├── AppIcon60x60@2x.png
│ │ │ ├── AppIcon60x60@3x.png
│ │ │ ├── AppIcon76x76@2x~ipad.png
│ │ │ ├── AppIcon76x76~ipad.png
│ │ │ ├── AppIcon83.5x83.5@2x~ipad.png
│ │ │ └── Contents.json
│ │ ├── City
│ │ │ ├── Contents.json
│ │ │ ├── FindFeedPlaceholder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── FindFeedPlaceholder@2x.png
│ │ │ ├── VideoPlaceholder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── VideoPlaceholder@2x.png
│ │ │ ├── auth_avatar_placeholder_image_82x82_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── auth_avatar_placeholder_image_82x82_@1x.png
│ │ │ │ └── auth_avatar_placeholder_image_82x82_@2x.png
│ │ │ ├── avatar_placeholder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── avatar_placeholder@1x.png
│ │ │ │ ├── avatar_placeholder@2x.png
│ │ │ │ └── avatar_placeholder@3x.png
│ │ │ ├── avatar_placeholder_26_26x26_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── avatar_placeholder_26_26x26_@1x.png
│ │ │ │ └── avatar_placeholder_26_26x26_@2x.png
│ │ │ ├── breadTrip_logo.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── breadTrip_logo.png
│ │ │ ├── btn_start_20x20_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── btn_start_20x20_@1x.png
│ │ │ │ └── btn_start_20x20_@2x.png
│ │ │ ├── discovery_comment_23x22_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── discovery_comment_23x22_@1x.png
│ │ │ │ ├── discovery_comment_23x22_@2x.png
│ │ │ │ └── discovery_comment_23x22_@3x.png
│ │ │ ├── discovery_like_more_34x34_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── discovery_like_more_34x34_@1x.png
│ │ │ │ ├── discovery_like_more_34x34_@2x.png
│ │ │ │ └── discovery_like_more_34x34_@3x.png
│ │ │ ├── feed_comment_more_26x26_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── feed_comment_more_26x26_@1x.png
│ │ │ │ └── feed_comment_more_26x26_@2x.png
│ │ │ ├── gallery_back_18x17_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── gallery_back_18x17_@2x.png
│ │ │ ├── gallery_back_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── gallery_back_19x18_@3x.png
│ │ │ ├── gallery_back_hl_18x17_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── gallery_back_hl_18x17_@2x.png
│ │ │ ├── gallery_back_hl_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── gallery_back_hl_19x18_@3x.png
│ │ │ ├── icon_nav_back_white_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── icon_nav_back_white_19x18_@1x.png
│ │ │ │ ├── icon_nav_back_white_19x18_@2x.png
│ │ │ │ └── icon_nav_back_white_19x18_@3x.png
│ │ │ ├── icon_nav_back_white_hl_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── icon_nav_back_white_hl_19x18_@1x.png
│ │ │ │ ├── icon_nav_back_white_hl_19x18_@2x.png
│ │ │ │ └── icon_nav_back_white_hl_19x18_@3x.png
│ │ │ ├── icon_nav_next_button_21x20_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── icon_nav_next_button_21x20_@1x.png
│ │ │ │ └── icon_nav_next_button_21x20_@2x.png
│ │ │ ├── icon_no_nav_back_button_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── icon_no_nav_back_button_19x18_@1x.png
│ │ │ │ ├── icon_no_nav_back_button_19x18_@2x.png
│ │ │ │ └── icon_no_nav_back_button_19x18_@3x.png
│ │ │ ├── im_avatar_placeholder_46x46_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── im_avatar_placeholder_46x46_@1x.png
│ │ │ │ ├── im_avatar_placeholder_46x46_@2x.png
│ │ │ │ └── im_avatar_placeholder_46x46_@3x.png
│ │ │ ├── navbar_back_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── navbar_back_19x18_@1x.png
│ │ │ │ ├── navbar_back_19x18_@2x.png
│ │ │ │ └── navbar_back_19x18_@3x.png
│ │ │ ├── navbar_back_hl_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── navbar_back_hl_19x18_@1x.png
│ │ │ │ ├── navbar_back_hl_19x18_@2x.png
│ │ │ │ └── navbar_back_hl_19x18_@3x.png
│ │ │ ├── navbar_blank64_3x64_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── navbar_blank64_3x64_@1x.png
│ │ │ │ ├── navbar_blank64_3x64_@2x.png
│ │ │ │ └── navbar_blank64_3x64_@3x.png
│ │ │ ├── navbar_blank_213x22_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── navbar_blank_213x22_@3x.png
│ │ │ ├── navbar_blank_320x44_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── navbar_blank_320x44_@1x.png
│ │ │ │ └── navbar_blank_320x44_@2x.png
│ │ │ ├── navbar_blank_statusbar_213x10_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── navbar_blank_statusbar_213x10_@3x.png
│ │ │ ├── navbar_blank_statusbar_320x20_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── navbar_blank_statusbar_320x20_@1x.png
│ │ │ │ └── navbar_blank_statusbar_320x20_@2x.png
│ │ │ ├── photo_placeholder_140x105_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── photo_placeholder_140x105_.png
│ │ │ │ ├── photo_placeholder_140x105_@2x.png
│ │ │ │ └── photo_placeholder_140x105_@3x.png
│ │ │ ├── poi_bg_placeholder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── poi_bg_placeholder@2x.png
│ │ │ ├── tabbar_user_button_image_22x22_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tabbar_user_button_image_22x22_@1x.png
│ │ │ │ └── tabbar_user_button_image_22x22_@2x.png
│ │ │ ├── tabbar_user_button_image_hl_22x22_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── tabbar_user_button_image_hl_22x22_@1x.png
│ │ │ │ └── tabbar_user_button_image_hl_22x22_@2x.png
│ │ │ ├── trip_map_play_60x34_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_map_play_60x34_@1x.png
│ │ │ │ ├── trip_map_play_60x34_@2x.png
│ │ │ │ └── trip_map_play_60x34_@3x.png
│ │ │ ├── trip_map_shadow_3x80_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_map_shadow_3x80_@1x.png
│ │ │ │ ├── trip_map_shadow_3x80_@2x.png
│ │ │ │ └── trip_map_shadow_3x80_@3x.png
│ │ │ ├── trip_new_btn_back_18x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── trip_new_btn_back_18x18_@3x.png
│ │ │ ├── trip_new_btn_back_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_btn_back_19x18_@1x.png
│ │ │ │ └── trip_new_btn_back_19x18_@2x.png
│ │ │ ├── trip_new_btn_back_hl_18x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── trip_new_btn_back_hl_18x18_@3x.png
│ │ │ ├── trip_new_btn_back_hl_19x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_btn_back_hl_19x18_@1x.png
│ │ │ │ └── trip_new_btn_back_hl_19x18_@2x.png
│ │ │ ├── trip_new_comment_20x19_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_comment_20x19_@1x.png
│ │ │ │ ├── trip_new_comment_20x19_@2x.png
│ │ │ │ └── trip_new_comment_20x19_@3x.png
│ │ │ ├── trip_new_comment_hl_20x19_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_comment_hl_20x19_@1x.png
│ │ │ │ ├── trip_new_comment_hl_20x19_@2x.png
│ │ │ │ └── trip_new_comment_hl_20x19_@3x.png
│ │ │ ├── trip_new_download_24x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_download_24x18_@1x.png
│ │ │ │ ├── trip_new_download_24x18_@2x.png
│ │ │ │ └── trip_new_download_24x18_@3x.png
│ │ │ ├── trip_new_edit_18x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── trip_new_edit_18x18_@3x.png
│ │ │ ├── trip_new_edit_19x19_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_edit_19x19_@1x.png
│ │ │ │ └── trip_new_edit_19x19_@2x.png
│ │ │ ├── trip_new_edit_hl_18x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── trip_new_edit_hl_18x18_@3x.png
│ │ │ ├── trip_new_edit_hl_19x19_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_edit_hl_19x19_@1x.png
│ │ │ │ └── trip_new_edit_hl_19x19_@2x.png
│ │ │ ├── trip_new_share_18x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_share_18x18_@1x.png
│ │ │ │ ├── trip_new_share_18x18_@2x.png
│ │ │ │ └── trip_new_share_18x18_@3x.png
│ │ │ ├── trip_new_share_hl_18x18_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_new_share_hl_18x18_@1x.png
│ │ │ │ ├── trip_new_share_hl_18x18_@2x.png
│ │ │ │ └── trip_new_share_hl_18x18_@3x.png
│ │ │ ├── trip_waypoint_action_button_bg.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── trip_waypoint_action_button_bg@2x~ipad.png
│ │ │ │ └── trip_waypoint_action_button_bg~ipad.png
│ │ │ └── tripdisplay_photocell_placeholder.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── tripdisplay_photocell_placeholder@2x.png
│ │ ├── Contents.json
│ │ ├── Empty
│ │ │ ├── Contents.json
│ │ │ └── EmptyButtonBg.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ └── 按钮 (1).png
│ │ ├── TabBar
│ │ │ ├── Contents.json
│ │ │ ├── root_tab_add_btn.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_add_btn@2x.png
│ │ │ │ └── root_tab_add_btn@3x.png
│ │ │ ├── root_tab_add_btn_select.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_add_btn_select@2x.png
│ │ │ │ └── root_tab_add_btn_select@3x.png
│ │ │ ├── root_tab_discover_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_discover_25x25_.png
│ │ │ │ ├── root_tab_discover_25x25_@2x.png
│ │ │ │ └── root_tab_discover_25x25_@3x.png
│ │ │ ├── root_tab_discover_hl_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_discover_hl_25x25_.png
│ │ │ │ ├── root_tab_discover_hl_25x25_@2x.png
│ │ │ │ └── root_tab_discover_hl_25x25_@3x.png
│ │ │ ├── root_tab_longtrip_btn.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_longtrip_btn@2x.png
│ │ │ │ └── root_tab_longtrip_btn@3x.png
│ │ │ ├── root_tab_me_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_me_25x25_.png
│ │ │ │ ├── root_tab_me_25x25_@2x.png
│ │ │ │ └── root_tab_me_25x25_@3x.png
│ │ │ ├── root_tab_me_hl_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_me_hl_25x25_.png
│ │ │ │ ├── root_tab_me_hl_25x25_@2x.png
│ │ │ │ └── root_tab_me_hl_25x25_@3x.png
│ │ │ ├── root_tab_msg_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_msg_25x25_.png
│ │ │ │ ├── root_tab_msg_25x25_@2x.png
│ │ │ │ └── root_tab_msg_25x25_@3x.png
│ │ │ ├── root_tab_msg_hl_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_msg_hl_25x25_.png
│ │ │ │ ├── root_tab_msg_hl_25x25_@2x.png
│ │ │ │ └── root_tab_msg_hl_25x25_@3x.png
│ │ │ ├── root_tab_recommand_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_recommand_25x25_.png
│ │ │ │ ├── root_tab_recommand_25x25_@2x.png
│ │ │ │ └── root_tab_recommand_25x25_@3x.png
│ │ │ ├── root_tab_recommand_hl_25x25_.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_recommand_hl_25x25_.png
│ │ │ │ ├── root_tab_recommand_hl_25x25_@2x.png
│ │ │ │ └── root_tab_recommand_hl_25x25_@3x.png
│ │ │ └── root_tab_spot_btn.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── root_tab_spot_btn@2x.png
│ │ │ │ └── root_tab_spot_btn@3x.png
│ │ └── tabbarRec
│ │ │ ├── Contents.json
│ │ │ ├── active_dot.imageset
│ │ │ ├── Contents.json
│ │ │ ├── active_dot.png
│ │ │ ├── active_dot@2x.png
│ │ │ └── active_dot@3x.png
│ │ │ ├── chats_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── chats_icon.png
│ │ │ ├── chats_icon@2x.png
│ │ │ └── chats_icon@3x.png
│ │ │ ├── circle.imageset
│ │ │ ├── Contents.json
│ │ │ ├── circle.png
│ │ │ ├── circle@2x.png
│ │ │ └── circle@3x.png
│ │ │ ├── circle_left.imageset
│ │ │ ├── Contents.json
│ │ │ ├── circle_left.png
│ │ │ ├── circle_left@2x.png
│ │ │ └── circle_left@3x.png
│ │ │ ├── circle_right.imageset
│ │ │ ├── Contents.json
│ │ │ ├── circle_right.png
│ │ │ ├── circle_right@2x.png
│ │ │ └── circle_right@3x.png
│ │ │ ├── circle_square.imageset
│ │ │ ├── Contents.json
│ │ │ ├── circle_square.png
│ │ │ ├── circle_square@2x.png
│ │ │ └── circle_square@3x.png
│ │ │ ├── edit_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── edit_icon.png
│ │ │ ├── edit_icon@2x.png
│ │ │ └── edit_icon@3x.png
│ │ │ ├── nearby_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── nearby_icon.png
│ │ │ ├── nearby_icon@2x.png
│ │ │ └── nearby_icon@3x.png
│ │ │ ├── new_chat_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── new_chat_icon.png
│ │ │ ├── new_chat_icon@2x.png
│ │ │ └── new_chat_icon@3x.png
│ │ │ ├── plus_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── plus_icon.png
│ │ │ ├── plus_icon@2x.png
│ │ │ └── plus_icon@3x.png
│ │ │ ├── profile_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── profile_icon.png
│ │ │ ├── profile_icon@2x.png
│ │ │ └── profile_icon@3x.png
│ │ │ ├── search_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── search_icon.png
│ │ │ ├── search_icon@2x.png
│ │ │ └── search_icon@3x.png
│ │ │ ├── settings_icon.imageset
│ │ │ ├── Contents.json
│ │ │ ├── settings_icon.png
│ │ │ ├── settings_icon@2x.png
│ │ │ └── settings_icon@3x.png
│ │ │ └── side_button.imageset
│ │ │ ├── Contents.json
│ │ │ ├── side_button.png
│ │ │ ├── side_button@2x.png
│ │ │ └── side_button@3x.png
│ ├── Base.lproj
│ │ └── LaunchScreen.storyboard
│ └── HeartTripPrefixHeader.pch
├── Classes
│ ├── AppModules
│ │ ├── HTApplicationService.h
│ │ ├── HTApplicationService.m
│ │ ├── HTUIWindowService.h
│ │ └── HTUIWindowService.m
│ ├── CityTravel
│ │ ├── Controller
│ │ │ ├── HTCityTravelDetailController.h
│ │ │ ├── HTCityTravelDetailController.m
│ │ │ ├── HTCityTravelNotesASDKController.h
│ │ │ ├── HTCityTravelNotesASDKController.m
│ │ │ ├── HTCityTravelNotesController.h
│ │ │ └── HTCityTravelNotesController.m
│ │ ├── Model
│ │ │ ├── HTBannerModel.h
│ │ │ ├── HTBannerModel.m
│ │ │ ├── HTCityTravelItemModel.h
│ │ │ └── HTCityTravelItemModel.m
│ │ ├── View
│ │ │ ├── HTBannerItemView.h
│ │ │ ├── HTBannerItemView.m
│ │ │ ├── HTCityTravelBannerView.h
│ │ │ ├── HTCityTravelBannerView.m
│ │ │ ├── HTCityTravelCell.h
│ │ │ └── HTCityTravelCell.m
│ │ └── ViewModel
│ │ │ ├── HTCityTravelDetailViewModel.h
│ │ │ ├── HTCityTravelDetailViewModel.m
│ │ │ ├── HTCityTravelNotesViewModel.h
│ │ │ └── HTCityTravelNotesViewModel.m
│ ├── Find
│ │ ├── Controller
│ │ │ ├── HTFindASDKViewController.h
│ │ │ ├── HTFindASDKViewController.m
│ │ │ ├── HTFindViewController.h
│ │ │ └── HTFindViewController.m
│ │ ├── Model
│ │ │ ├── HTFindFeedModel.h
│ │ │ ├── HTFindFeedModel.m
│ │ │ ├── HTFindVideosModel.h
│ │ │ └── HTFindVideosModel.m
│ │ ├── View
│ │ │ ├── HTFindFeedCell.h
│ │ │ ├── HTFindFeedCell.m
│ │ │ ├── HTFindVideoItemView.h
│ │ │ ├── HTFindVideoItemView.m
│ │ │ ├── HTFindVideoView.h
│ │ │ └── HTFindVideoView.m
│ │ └── ViewModel
│ │ │ ├── HTFindViewModel.h
│ │ │ └── HTFindViewModel.m
│ └── Main
│ │ ├── HTFoldingTabBarControllerConfig.h
│ │ ├── HTFoldingTabBarControllerConfig.m
│ │ ├── HTNavigationController.h
│ │ └── HTNavigationController.m
├── Info.plist
├── Resource
│ └── LottieJson
│ │ ├── Travel_Nodata.json
│ │ └── loadingHUD.json
├── UIKitComponents
│ ├── HTHUD
│ │ ├── HTHUD+EmptyView.h
│ │ ├── HTHUD+EmptyView.m
│ │ ├── HTHUD.h
│ │ └── HTHUD.m
│ ├── HTTipsView
│ │ ├── HTActionTipsView.h
│ │ ├── HTActionTipsView.m
│ │ ├── HTBaseBottomTipView.h
│ │ ├── HTBaseBottomTipView.m
│ │ ├── HTBaseCenterTipView.h
│ │ ├── HTBaseCenterTipView.m
│ │ ├── HTShowTipsView.h
│ │ ├── HTShowTipsView.m
│ │ └── HTTipsViewKit.h
│ └── SwiftAdapter
│ │ ├── HTDarkModeInit.swift
│ │ ├── HTLottieView.swift
│ │ └── HeartTrip-Bridging-Header.h
├── Util
│ ├── .DS_Store
│ ├── Category
│ │ ├── HTCategory.h
│ │ └── UIKit
│ │ │ ├── UICollectionView+Refresh.h
│ │ │ ├── UICollectionView+Refresh.m
│ │ │ ├── UIImage+HTRoundImage.h
│ │ │ ├── UIImage+HTRoundImage.m
│ │ │ ├── UIImageView+HTRoundImage.h
│ │ │ ├── UIImageView+HTRoundImage.m
│ │ │ ├── UIScrollView+Refresh.h
│ │ │ ├── UIScrollView+Refresh.m
│ │ │ ├── UITableView+Refresh.h
│ │ │ └── UITableView+Refresh.m
│ ├── Configure
│ │ ├── HTConfig.h
│ │ ├── HTConst.h
│ │ └── HTConst.m
│ ├── Log
│ │ ├── HTLogFormatter.h
│ │ └── HTLogFormatter.m
│ ├── Networking
│ │ ├── HTRequestList.h
│ │ ├── HTRequestList.m
│ │ ├── RACCommand+Request.h
│ │ ├── RACCommand+Request.m
│ │ ├── RACSignal+Request.h
│ │ └── RACSignal+Request.m
│ ├── RouteMediator
│ │ ├── .DS_Store
│ │ ├── AppModule
│ │ │ ├── AppModule
│ │ │ │ ├── HTAppDelegate.h
│ │ │ │ ├── HTAppDelegate.m
│ │ │ │ ├── QTAppEvents.h
│ │ │ │ ├── QTAppEvents.m
│ │ │ │ ├── QTAppModule.h
│ │ │ │ ├── QTAppModuleManager.h
│ │ │ │ ├── QTAppModuleManager.m
│ │ │ │ └── QTEventBus+AppModule.h
│ │ │ └── Core
│ │ │ │ ├── NSNotification+QTEvent.h
│ │ │ │ ├── NSNotification+QTEvent.m
│ │ │ │ ├── NSObject+QTEventBus.h
│ │ │ │ ├── NSObject+QTEventBus.m
│ │ │ │ ├── NSObject+QTEventBus_Private.h
│ │ │ │ ├── NSObject+QTEventBus_Private.m
│ │ │ │ ├── NSString+QTEevnt.h
│ │ │ │ ├── NSString+QTEevnt.m
│ │ │ │ ├── QTDisposeBag.h
│ │ │ │ ├── QTDisposeBag.m
│ │ │ │ ├── QTEventBus.h
│ │ │ │ ├── QTEventBus.m
│ │ │ │ ├── QTEventBusCollection.h
│ │ │ │ ├── QTEventBusCollection.m
│ │ │ │ ├── QTEventTypes.h
│ │ │ │ ├── QTJsonEvent.h
│ │ │ │ └── QTJsonEvent.m
│ │ └── URLRouteMediator
│ │ │ ├── .DS_Store
│ │ │ ├── Base
│ │ │ ├── HTBaseEnum.h
│ │ │ ├── HTBaseModel.h
│ │ │ ├── HTBaseModel.m
│ │ │ ├── HTBaseViewController.h
│ │ │ ├── HTBaseViewController.m
│ │ │ ├── HTBaseViewModel.h
│ │ │ ├── HTBaseViewModel.m
│ │ │ ├── HTViewControllerProtocol.h
│ │ │ └── HTViewModelProtocol.h
│ │ │ ├── ModelParser
│ │ │ ├── HTModelParserProtocol.h
│ │ │ ├── NSObject+HTModelParser.h
│ │ │ └── NSObject+HTModelParser.m
│ │ │ ├── Route
│ │ │ ├── HTViewControllerRouteProtocol.h
│ │ │ ├── NSObject+HTRouteProtocol.h
│ │ │ ├── NSObject+HTRouteProtocol.m
│ │ │ ├── RACCommand+HTRoute.h
│ │ │ ├── RACCommand+HTRoute.m
│ │ │ ├── RACSignal+HTRoute.h
│ │ │ └── RACSignal+HTRoute.m
│ │ │ └── URLParser
│ │ │ ├── HTURLRouteAction.h
│ │ │ ├── HTURLRouteAction.m
│ │ │ ├── HTURLRouteParser.h
│ │ │ ├── HTURLRouteParser.m
│ │ │ └── HTURLRouteParserProtocol.h
│ └── Utils
│ │ ├── HTUtilsMethod.h
│ │ └── HTUtilsMethod.m
├── Vendor
│ ├── FDFullscreenPopGesture
│ │ ├── UINavigationController+FDFullscreenPopGesture.h
│ │ └── UINavigationController+FDFullscreenPopGesture.m
│ ├── MasonryExtentions
│ │ ├── MASConstraintMaker+Forbearance.h
│ │ ├── MASConstraintMaker+Forbearance.m
│ │ ├── MASForbearance.h
│ │ ├── MASForbearance.m
│ │ ├── NSArray+Sudoku.h
│ │ ├── NSArray+Sudoku.m
│ │ ├── UIView+Forbearance.h
│ │ └── UIView+Forbearance.m
│ ├── NSObjectSafe
│ │ ├── NSObjectSafe.h
│ │ └── NSObjectSafe.m
│ └── Reachability
│ │ ├── Reachability.h
│ │ └── Reachability.m
└── main.m
├── Podfile
├── Podfile.lock
├── README.md
└── ReadmeImage
├── .DS_Store
├── MVVM.png
├── city.png
├── find.png
└── finddetail.png
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/.DS_Store
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## Build generated
6 | build/
7 | DerivedData/
8 |
9 | ## Various settings
10 | *.pbxuser
11 | !default.pbxuser
12 | *.mode1v3
13 | !default.mode1v3
14 | *.mode2v3
15 | !default.mode2v3
16 | *.perspectivev3
17 | !default.perspectivev3
18 | xcuserdata/
19 |
20 | ## Other
21 | *.moved-aside
22 | *.xcuserstate
23 |
24 | ## Obj-C/Swift specific
25 | *.hmap
26 | *.ipa
27 | *.dSYM.zip
28 | *.dSYM
29 |
30 | # CocoaPods
31 | #
32 | # We recommend against adding the Pods directory to your .gitignore. However
33 | # you should judge for yourself, the pros and cons are mentioned at:
34 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
35 | #
36 | Pods/
37 |
38 | # Carthage
39 | #
40 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
41 | # Carthage/Checkouts
42 |
43 | Carthage/Build
44 |
45 | # fastlane
46 | #
47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
48 | # screenshots whenever they are needed.
49 | # For more information about the recommended setup visit:
50 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
51 |
52 | fastlane/report.xml
53 | fastlane/screenshots
54 |
55 | #Code Injection
56 | #
57 | # After new code Injection tools there's a generated folder /iOSInjectionProject
58 | # https://github.com/johnno1962/injectionforxcode
59 |
60 | iOSInjectionProject/
61 |
--------------------------------------------------------------------------------
/HeartTrip.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/HeartTrip.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/HeartTrip.xcodeproj/project.xcworkspace/xcuserdata/CoderBear.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip.xcodeproj/project.xcworkspace/xcuserdata/CoderBear.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/HeartTrip.xcodeproj/xcuserdata/CoderBear.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | HeartTrip.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | CE30C49E1D82CA2E0028CB73
16 |
17 | primary
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/HeartTrip.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/HeartTrip.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/HeartTrip/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/.DS_Store
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/.DS_Store
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon20x20~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon29x29~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon40x40~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/FindFeedPlaceholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "FindFeedPlaceholder@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/FindFeedPlaceholder.imageset/FindFeedPlaceholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/FindFeedPlaceholder.imageset/FindFeedPlaceholder@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/VideoPlaceholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "VideoPlaceholder@2x.png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/VideoPlaceholder.imageset/VideoPlaceholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/VideoPlaceholder.imageset/VideoPlaceholder@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/auth_avatar_placeholder_image_82x82_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "auth_avatar_placeholder_image_82x82_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "auth_avatar_placeholder_image_82x82_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/auth_avatar_placeholder_image_82x82_.imageset/auth_avatar_placeholder_image_82x82_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/auth_avatar_placeholder_image_82x82_.imageset/auth_avatar_placeholder_image_82x82_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/auth_avatar_placeholder_image_82x82_.imageset/auth_avatar_placeholder_image_82x82_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/auth_avatar_placeholder_image_82x82_.imageset/auth_avatar_placeholder_image_82x82_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "avatar_placeholder@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "avatar_placeholder@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "avatar_placeholder@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/avatar_placeholder@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/avatar_placeholder@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/avatar_placeholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/avatar_placeholder@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/avatar_placeholder@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder.imageset/avatar_placeholder@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder_26_26x26_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "avatar_placeholder_26_26x26_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "avatar_placeholder_26_26x26_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder_26_26x26_.imageset/avatar_placeholder_26_26x26_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder_26_26x26_.imageset/avatar_placeholder_26_26x26_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder_26_26x26_.imageset/avatar_placeholder_26_26x26_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/avatar_placeholder_26_26x26_.imageset/avatar_placeholder_26_26x26_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/breadTrip_logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "breadTrip_logo.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/breadTrip_logo.imageset/breadTrip_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/breadTrip_logo.imageset/breadTrip_logo.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/btn_start_20x20_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "btn_start_20x20_@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "btn_start_20x20_@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/btn_start_20x20_.imageset/btn_start_20x20_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/btn_start_20x20_.imageset/btn_start_20x20_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/btn_start_20x20_.imageset/btn_start_20x20_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/btn_start_20x20_.imageset/btn_start_20x20_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "discovery_comment_23x22_@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "discovery_comment_23x22_@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "discovery_comment_23x22_@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/discovery_comment_23x22_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/discovery_comment_23x22_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/discovery_comment_23x22_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/discovery_comment_23x22_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/discovery_comment_23x22_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/discovery_comment_23x22_.imageset/discovery_comment_23x22_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "discovery_like_more_34x34_@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "discovery_like_more_34x34_@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "filename" : "discovery_like_more_34x34_@3x.png",
15 | "idiom" : "universal",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "author" : "xcode",
21 | "version" : 1
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/discovery_like_more_34x34_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/discovery_like_more_34x34_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/discovery_like_more_34x34_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/discovery_like_more_34x34_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/discovery_like_more_34x34_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/discovery_like_more_34x34_.imageset/discovery_like_more_34x34_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/feed_comment_more_26x26_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "feed_comment_more_26x26_@1x.png",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "filename" : "feed_comment_more_26x26_@2x.png",
10 | "idiom" : "universal",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/feed_comment_more_26x26_.imageset/feed_comment_more_26x26_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/feed_comment_more_26x26_.imageset/feed_comment_more_26x26_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/feed_comment_more_26x26_.imageset/feed_comment_more_26x26_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/feed_comment_more_26x26_.imageset/feed_comment_more_26x26_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_18x17_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "gallery_back_18x17_@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_18x17_.imageset/gallery_back_18x17_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/gallery_back_18x17_.imageset/gallery_back_18x17_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "gallery_back_19x18_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_19x18_.imageset/gallery_back_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/gallery_back_19x18_.imageset/gallery_back_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_hl_18x17_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "gallery_back_hl_18x17_@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_hl_18x17_.imageset/gallery_back_hl_18x17_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/gallery_back_hl_18x17_.imageset/gallery_back_hl_18x17_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_hl_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "gallery_back_hl_19x18_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/gallery_back_hl_19x18_.imageset/gallery_back_hl_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/gallery_back_hl_19x18_.imageset/gallery_back_hl_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "icon_nav_back_white_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "icon_nav_back_white_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "icon_nav_back_white_19x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/icon_nav_back_white_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/icon_nav_back_white_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/icon_nav_back_white_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/icon_nav_back_white_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/icon_nav_back_white_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_19x18_.imageset/icon_nav_back_white_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "icon_nav_back_white_hl_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "icon_nav_back_white_hl_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "icon_nav_back_white_hl_19x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/icon_nav_back_white_hl_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/icon_nav_back_white_hl_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/icon_nav_back_white_hl_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/icon_nav_back_white_hl_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/icon_nav_back_white_hl_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_back_white_hl_19x18_.imageset/icon_nav_back_white_hl_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_next_button_21x20_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "icon_nav_next_button_21x20_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "icon_nav_next_button_21x20_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_next_button_21x20_.imageset/icon_nav_next_button_21x20_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_next_button_21x20_.imageset/icon_nav_next_button_21x20_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_nav_next_button_21x20_.imageset/icon_nav_next_button_21x20_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_nav_next_button_21x20_.imageset/icon_nav_next_button_21x20_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "icon_no_nav_back_button_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "icon_no_nav_back_button_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "icon_no_nav_back_button_19x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/icon_no_nav_back_button_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/icon_no_nav_back_button_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/icon_no_nav_back_button_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/icon_no_nav_back_button_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/icon_no_nav_back_button_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/icon_no_nav_back_button_19x18_.imageset/icon_no_nav_back_button_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "im_avatar_placeholder_46x46_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "im_avatar_placeholder_46x46_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "im_avatar_placeholder_46x46_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/im_avatar_placeholder_46x46_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/im_avatar_placeholder_46x46_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/im_avatar_placeholder_46x46_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/im_avatar_placeholder_46x46_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/im_avatar_placeholder_46x46_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/im_avatar_placeholder_46x46_.imageset/im_avatar_placeholder_46x46_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navbar_back_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navbar_back_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "navbar_back_19x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/navbar_back_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/navbar_back_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/navbar_back_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/navbar_back_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/navbar_back_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_back_19x18_.imageset/navbar_back_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navbar_back_hl_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navbar_back_hl_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "navbar_back_hl_19x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/navbar_back_hl_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/navbar_back_hl_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/navbar_back_hl_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/navbar_back_hl_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/navbar_back_hl_19x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_back_hl_19x18_.imageset/navbar_back_hl_19x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navbar_blank64_3x64_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navbar_blank64_3x64_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "navbar_blank64_3x64_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/navbar_blank64_3x64_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/navbar_blank64_3x64_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/navbar_blank64_3x64_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/navbar_blank64_3x64_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/navbar_blank64_3x64_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank64_3x64_.imageset/navbar_blank64_3x64_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_213x22_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "navbar_blank_213x22_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_213x22_.imageset/navbar_blank_213x22_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank_213x22_.imageset/navbar_blank_213x22_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_320x44_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navbar_blank_320x44_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navbar_blank_320x44_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_320x44_.imageset/navbar_blank_320x44_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank_320x44_.imageset/navbar_blank_320x44_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_320x44_.imageset/navbar_blank_320x44_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank_320x44_.imageset/navbar_blank_320x44_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_213x10_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "navbar_blank_statusbar_213x10_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_213x10_.imageset/navbar_blank_statusbar_213x10_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_213x10_.imageset/navbar_blank_statusbar_213x10_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_320x20_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "navbar_blank_statusbar_320x20_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "navbar_blank_statusbar_320x20_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_320x20_.imageset/navbar_blank_statusbar_320x20_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_320x20_.imageset/navbar_blank_statusbar_320x20_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_320x20_.imageset/navbar_blank_statusbar_320x20_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/navbar_blank_statusbar_320x20_.imageset/navbar_blank_statusbar_320x20_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "photo_placeholder_140x105_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "photo_placeholder_140x105_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "photo_placeholder_140x105_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/photo_placeholder_140x105_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/photo_placeholder_140x105_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/photo_placeholder_140x105_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/photo_placeholder_140x105_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/photo_placeholder_140x105_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/photo_placeholder_140x105_.imageset/photo_placeholder_140x105_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/poi_bg_placeholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "poi_bg_placeholder@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/poi_bg_placeholder.imageset/poi_bg_placeholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/poi_bg_placeholder.imageset/poi_bg_placeholder@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_22x22_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "tabbar_user_button_image_22x22_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "tabbar_user_button_image_22x22_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_22x22_.imageset/tabbar_user_button_image_22x22_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_22x22_.imageset/tabbar_user_button_image_22x22_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_22x22_.imageset/tabbar_user_button_image_22x22_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_22x22_.imageset/tabbar_user_button_image_22x22_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_hl_22x22_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "tabbar_user_button_image_hl_22x22_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "tabbar_user_button_image_hl_22x22_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_hl_22x22_.imageset/tabbar_user_button_image_hl_22x22_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_hl_22x22_.imageset/tabbar_user_button_image_hl_22x22_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_hl_22x22_.imageset/tabbar_user_button_image_hl_22x22_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/tabbar_user_button_image_hl_22x22_.imageset/tabbar_user_button_image_hl_22x22_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_map_play_60x34_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_map_play_60x34_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_map_play_60x34_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/trip_map_play_60x34_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/trip_map_play_60x34_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/trip_map_play_60x34_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/trip_map_play_60x34_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/trip_map_play_60x34_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_map_play_60x34_.imageset/trip_map_play_60x34_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_map_shadow_3x80_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_map_shadow_3x80_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_map_shadow_3x80_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/trip_map_shadow_3x80_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/trip_map_shadow_3x80_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/trip_map_shadow_3x80_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/trip_map_shadow_3x80_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/trip_map_shadow_3x80_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_map_shadow_3x80_.imageset/trip_map_shadow_3x80_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_18x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "trip_new_btn_back_18x18_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_18x18_.imageset/trip_new_btn_back_18x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_18x18_.imageset/trip_new_btn_back_18x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_btn_back_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_btn_back_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_19x18_.imageset/trip_new_btn_back_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_19x18_.imageset/trip_new_btn_back_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_19x18_.imageset/trip_new_btn_back_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_19x18_.imageset/trip_new_btn_back_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_18x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "trip_new_btn_back_hl_18x18_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_18x18_.imageset/trip_new_btn_back_hl_18x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_18x18_.imageset/trip_new_btn_back_hl_18x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_19x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_btn_back_hl_19x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_btn_back_hl_19x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_19x18_.imageset/trip_new_btn_back_hl_19x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_19x18_.imageset/trip_new_btn_back_hl_19x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_19x18_.imageset/trip_new_btn_back_hl_19x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_btn_back_hl_19x18_.imageset/trip_new_btn_back_hl_19x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_comment_20x19_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_comment_20x19_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_new_comment_20x19_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/trip_new_comment_20x19_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/trip_new_comment_20x19_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/trip_new_comment_20x19_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/trip_new_comment_20x19_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/trip_new_comment_20x19_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_20x19_.imageset/trip_new_comment_20x19_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_comment_hl_20x19_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_comment_hl_20x19_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_new_comment_hl_20x19_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/trip_new_comment_hl_20x19_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/trip_new_comment_hl_20x19_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/trip_new_comment_hl_20x19_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/trip_new_comment_hl_20x19_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/trip_new_comment_hl_20x19_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_comment_hl_20x19_.imageset/trip_new_comment_hl_20x19_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_download_24x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_download_24x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_new_download_24x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/trip_new_download_24x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/trip_new_download_24x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/trip_new_download_24x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/trip_new_download_24x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/trip_new_download_24x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_download_24x18_.imageset/trip_new_download_24x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_18x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "trip_new_edit_18x18_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_18x18_.imageset/trip_new_edit_18x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_18x18_.imageset/trip_new_edit_18x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_19x19_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_edit_19x19_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_edit_19x19_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_19x19_.imageset/trip_new_edit_19x19_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_19x19_.imageset/trip_new_edit_19x19_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_19x19_.imageset/trip_new_edit_19x19_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_19x19_.imageset/trip_new_edit_19x19_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_18x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x"
10 | },
11 | {
12 | "idiom" : "universal",
13 | "filename" : "trip_new_edit_hl_18x18_@3x.png",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_18x18_.imageset/trip_new_edit_hl_18x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_18x18_.imageset/trip_new_edit_hl_18x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_19x19_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_edit_hl_19x19_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_edit_hl_19x19_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_19x19_.imageset/trip_new_edit_hl_19x19_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_19x19_.imageset/trip_new_edit_hl_19x19_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_19x19_.imageset/trip_new_edit_hl_19x19_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_edit_hl_19x19_.imageset/trip_new_edit_hl_19x19_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_share_18x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_share_18x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_new_share_18x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/trip_new_share_18x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/trip_new_share_18x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/trip_new_share_18x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/trip_new_share_18x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/trip_new_share_18x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_share_18x18_.imageset/trip_new_share_18x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "trip_new_share_hl_18x18_@1x.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "trip_new_share_hl_18x18_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "trip_new_share_hl_18x18_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/trip_new_share_hl_18x18_@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/trip_new_share_hl_18x18_@1x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/trip_new_share_hl_18x18_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/trip_new_share_hl_18x18_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/trip_new_share_hl_18x18_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_new_share_hl_18x18_.imageset/trip_new_share_hl_18x18_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_waypoint_action_button_bg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "ipad",
5 | "filename" : "trip_waypoint_action_button_bg~ipad.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "ipad",
10 | "filename" : "trip_waypoint_action_button_bg@2x~ipad.png",
11 | "scale" : "2x"
12 | }
13 | ],
14 | "info" : {
15 | "version" : 1,
16 | "author" : "xcode"
17 | }
18 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_waypoint_action_button_bg.imageset/trip_waypoint_action_button_bg@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_waypoint_action_button_bg.imageset/trip_waypoint_action_button_bg@2x~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/trip_waypoint_action_button_bg.imageset/trip_waypoint_action_button_bg~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/trip_waypoint_action_button_bg.imageset/trip_waypoint_action_button_bg~ipad.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tripdisplay_photocell_placeholder.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "tripdisplay_photocell_placeholder@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/City/tripdisplay_photocell_placeholder.imageset/tripdisplay_photocell_placeholder@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/City/tripdisplay_photocell_placeholder.imageset/tripdisplay_photocell_placeholder@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/Empty/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/Empty/EmptyButtonBg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "filename" : "按钮 (1).png",
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/Empty/EmptyButtonBg.imageset/按钮 (1).png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/Empty/EmptyButtonBg.imageset/按钮 (1).png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "root_tab_add_btn@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "root_tab_add_btn@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn.imageset/root_tab_add_btn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn.imageset/root_tab_add_btn@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn.imageset/root_tab_add_btn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn.imageset/root_tab_add_btn@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn_select.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "root_tab_add_btn_select@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "root_tab_add_btn_select@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn_select.imageset/root_tab_add_btn_select@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn_select.imageset/root_tab_add_btn_select@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn_select.imageset/root_tab_add_btn_select@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_add_btn_select.imageset/root_tab_add_btn_select@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_discover_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_discover_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_discover_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/root_tab_discover_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/root_tab_discover_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/root_tab_discover_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/root_tab_discover_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/root_tab_discover_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_25x25_.imageset/root_tab_discover_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_discover_hl_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_discover_hl_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_discover_hl_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/root_tab_discover_hl_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/root_tab_discover_hl_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/root_tab_discover_hl_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/root_tab_discover_hl_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/root_tab_discover_hl_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_discover_hl_25x25_.imageset/root_tab_discover_hl_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_longtrip_btn.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "root_tab_longtrip_btn@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "root_tab_longtrip_btn@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_longtrip_btn.imageset/root_tab_longtrip_btn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_longtrip_btn.imageset/root_tab_longtrip_btn@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_longtrip_btn.imageset/root_tab_longtrip_btn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_longtrip_btn.imageset/root_tab_longtrip_btn@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_me_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_me_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_me_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/root_tab_me_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/root_tab_me_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/root_tab_me_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/root_tab_me_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/root_tab_me_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_25x25_.imageset/root_tab_me_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_me_hl_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_me_hl_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_me_hl_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/root_tab_me_hl_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/root_tab_me_hl_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/root_tab_me_hl_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/root_tab_me_hl_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/root_tab_me_hl_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_me_hl_25x25_.imageset/root_tab_me_hl_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_msg_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_msg_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_msg_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/root_tab_msg_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/root_tab_msg_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/root_tab_msg_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/root_tab_msg_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/root_tab_msg_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_25x25_.imageset/root_tab_msg_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_msg_hl_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_msg_hl_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_msg_hl_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/root_tab_msg_hl_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/root_tab_msg_hl_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/root_tab_msg_hl_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/root_tab_msg_hl_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/root_tab_msg_hl_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_msg_hl_25x25_.imageset/root_tab_msg_hl_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_recommand_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_recommand_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_recommand_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/root_tab_recommand_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/root_tab_recommand_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/root_tab_recommand_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/root_tab_recommand_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/root_tab_recommand_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_25x25_.imageset/root_tab_recommand_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "root_tab_recommand_hl_25x25_.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "root_tab_recommand_hl_25x25_@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "root_tab_recommand_hl_25x25_@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/root_tab_recommand_hl_25x25_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/root_tab_recommand_hl_25x25_.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/root_tab_recommand_hl_25x25_@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/root_tab_recommand_hl_25x25_@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/root_tab_recommand_hl_25x25_@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_recommand_hl_25x25_.imageset/root_tab_recommand_hl_25x25_@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_spot_btn.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "root_tab_spot_btn@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "filename" : "root_tab_spot_btn@3x.png",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_spot_btn.imageset/root_tab_spot_btn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_spot_btn.imageset/root_tab_spot_btn@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_spot_btn.imageset/root_tab_spot_btn@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/TabBar/root_tab_spot_btn.imageset/root_tab_spot_btn@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "active_dot.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "active_dot@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "active_dot@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/active_dot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/active_dot.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/active_dot@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/active_dot@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/active_dot@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/active_dot.imageset/active_dot@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "chats_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "chats_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "chats_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/chats_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/chats_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/chats_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/chats_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/chats_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/chats_icon.imageset/chats_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "circle.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "circle@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "circle@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/circle.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/circle@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/circle@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/circle@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle.imageset/circle@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "circle_left.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "circle_left@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "circle_left@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/circle_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/circle_left.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/circle_left@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/circle_left@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/circle_left@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_left.imageset/circle_left@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "circle_right.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "circle_right@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "circle_right@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/circle_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/circle_right.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/circle_right@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/circle_right@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/circle_right@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_right.imageset/circle_right@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "circle_square.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "circle_square@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "circle_square@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/circle_square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/circle_square.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/circle_square@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/circle_square@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/circle_square@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/circle_square.imageset/circle_square@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "edit_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "edit_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "edit_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/edit_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/edit_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/edit_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/edit_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/edit_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/edit_icon.imageset/edit_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "nearby_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "nearby_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "nearby_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/nearby_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/nearby_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/nearby_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/nearby_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/nearby_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/nearby_icon.imageset/nearby_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "new_chat_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "new_chat_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "new_chat_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/new_chat_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/new_chat_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/new_chat_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/new_chat_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/new_chat_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/new_chat_icon.imageset/new_chat_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "plus_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "plus_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "plus_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/plus_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/plus_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/plus_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/plus_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/plus_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/plus_icon.imageset/plus_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "profile_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "profile_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "profile_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/profile_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/profile_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/profile_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/profile_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/profile_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/profile_icon.imageset/profile_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "search_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "search_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "search_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/search_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/search_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/search_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/search_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/search_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/search_icon.imageset/search_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "settings_icon.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "settings_icon@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "settings_icon@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/settings_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/settings_icon.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/settings_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/settings_icon@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/settings_icon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/settings_icon.imageset/settings_icon@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "side_button.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "side_button@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "side_button@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/side_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/side_button.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/side_button@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/side_button@2x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/side_button@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Application/Assets.xcassets/tabbarRec/side_button.imageset/side_button@3x.png
--------------------------------------------------------------------------------
/HeartTrip/Application/HeartTripPrefixHeader.pch:
--------------------------------------------------------------------------------
1 | //
2 | // HeartTripPrefixHeader.pch
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/9/12.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #ifndef HeartTripPrefixHeader_pch
10 | #define HeartTripPrefixHeader_pch
11 |
12 | // 基础组件
13 | #import
14 | #import
15 | #import
16 | #import
17 | #import
18 | #import
19 | #import
20 | #import
21 | #import
22 | #import
23 |
24 |
25 |
26 | // 三方库
27 | #import
28 | #import
29 | #import
30 | #import
31 | #import
32 | #import
33 | #import
34 | #import
35 | #import "QTEventBus+AppModule.h"
36 |
37 |
38 |
39 | // 本地文件
40 | #import "HTAppdelegate.h"
41 | #import "HTApplicationService.h"
42 | #import "HTCategory.h"
43 | #import "HTConfig.h"
44 | #import "HTConst.h"
45 | #import "RACCommand+Request.h"
46 | #import "RACCommand+HTRoute.h"
47 | #import
48 | #import "HTUtilsMethod.h"
49 | #import "HTTipsViewKit.h"
50 | #import "HTHUD+EmptyView.h"
51 |
52 | #endif /* HeartTripPrefixHeader_pch */
53 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/AppModules/HTApplicationService.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTApplicationService.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/12.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "Reachability.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | /// 启动时候需要初始化的配置服务,优先级比较高
15 | @interface HTApplicationService : NSObject
16 |
17 | /// 网络状态
18 | @property (nonatomic, assign, readonly) NetworkStatus networkStatus;
19 |
20 | /// 获取Data实例
21 | + (instancetype)sharedData;
22 |
23 | @end
24 |
25 | NS_ASSUME_NONNULL_END
26 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/AppModules/HTUIWindowService.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTUIWindowService.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/12.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | /// 启动时候需要初始化的根控制器服务,优先级比较低
14 | @interface HTUIWindowService : UIResponder
15 |
16 | // 获取Data实例
17 | + (instancetype)sharedData;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/AppModules/HTUIWindowService.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTUIWindowService.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/12.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTUIWindowService.h"
10 | #import "HTFoldingTabBarControllerConfig.h"
11 |
12 | QTAppModuleRegister(HTUIWindowService, QTAppEventPriorityDefault)
13 |
14 | @interface HTUIWindowService ()
15 | @end
16 |
17 |
18 | @implementation HTUIWindowService
19 | #pragma mark - QTAppModule
20 | + (instancetype)sharedData{
21 | static HTUIWindowService *_shared = nil;
22 | static dispatch_once_t onceToken;
23 | dispatch_once(&onceToken, ^{
24 | _shared = [[HTUIWindowService alloc] init];
25 | [_shared initConfig];
26 | });
27 | return _shared;
28 | }
29 | + (id)moduleInstance{
30 | return [HTUIWindowService sharedData];
31 | }
32 |
33 | - (void)appDidFinishLaunch:(QTAppDidLaunchEvent *)event{
34 | // 配置Window
35 | [self configBaseWindow:event];
36 | // 设置跟控制器
37 | [self setRootViewController:event];
38 | }
39 | #pragma mark - Config
40 | - (void)initConfig{
41 |
42 | }
43 | - (void)configBaseWindow:(QTAppDidLaunchEvent *)event{
44 |
45 | HT_APPDelegate.window = [[UIWindow alloc] init];
46 | HT_APPDelegate.window.frame = [UIScreen mainScreen].bounds;
47 | [HT_APPDelegate.window makeKeyAndVisible];
48 | }
49 |
50 | - (void)setRootViewController:(QTAppDidLaunchEvent *)event{
51 |
52 | HTFoldingTabBarControllerConfig *tabBarControllerConfig = [[HTFoldingTabBarControllerConfig alloc] init];
53 | [HT_APPDelegate.window setRootViewController:tabBarControllerConfig.flodingTabBarController];
54 | }
55 | @end
56 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Controller/HTCityTravelDetailController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelDetailController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/6/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewController.h"
10 | #import "HTCityTravelDetailViewModel.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTCityTravelDetailController : HTBaseViewController
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Controller/HTCityTravelDetailController.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelDetailController.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/6/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTCityTravelDetailController.h"
10 |
11 | @interface HTCityTravelDetailController ()
12 |
13 | @end
14 |
15 | @implementation HTCityTravelDetailController
16 |
17 | #pragma mark - Life Cycle
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 |
21 | [self configBase];
22 | }
23 |
24 | #pragma mark - Bind
25 | - (void)bindViewModelDidLoad{
26 | DDLogDebug(@"%@",self.viewModel.listItem);
27 | }
28 |
29 | #pragma mark - Config
30 | - (void)configBase{
31 |
32 | }
33 |
34 | #pragma mark - Getter
35 |
36 | @end
37 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Controller/HTCityTravelNotesASDKController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelNotesASDKController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewController.h"
10 | #import "HTCityTravelNotesViewModel.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTCityTravelNotesASDKController : HTBaseViewController
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Controller/HTCityTravelNotesASDKController.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelNotesASDKController.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTCityTravelNotesASDKController.h"
10 |
11 | @interface HTCityTravelNotesASDKController ()
12 |
13 | @end
14 |
15 | @implementation HTCityTravelNotesASDKController
16 |
17 | #pragma mark - Life Cycle
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 |
21 | [self configBase];
22 | }
23 |
24 | #pragma mark - Bind
25 | - (void)bindViewModelDidLoad{
26 |
27 | }
28 |
29 | #pragma mark - Config
30 | - (void)configBase{
31 | UIImageView *logo = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 45, 30)];
32 | logo.image = UIImageMake(@"breadTrip_logo");
33 | self.navigationItem.titleView = logo;
34 | }
35 |
36 | #pragma mark - Getter
37 | @end
38 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Controller/HTCityTravelNotesController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelNotesController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewController.h"
10 | #import "HTCityTravelNotesViewModel.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTCityTravelNotesController : HTBaseViewController
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Model/HTBannerModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBannerModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/20.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseModel.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTBannerModel : HTBaseModel
14 | /// banner跳转地址
15 | @property (copy, nonatomic) NSString *html_url;
16 | /// banner图地址
17 | @property (copy, nonatomic) NSString *image_url;
18 | @end
19 |
20 | NS_ASSUME_NONNULL_END
21 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Model/HTBannerModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTBannerModel.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/20.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBannerModel.h"
10 |
11 | @implementation HTBannerModel
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Model/HTCityTravelItemModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelItemModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/20.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseModel.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTUserModel : HTBaseModel
14 |
15 | /// 用户头像
16 | @property (copy, nonatomic) NSString *avatar_m;
17 | /// 用户名
18 | @property (copy, nonatomic) NSString *name;
19 | /// 用户id
20 | @property (strong, nonatomic) NSNumber *userID;
21 |
22 | @end
23 |
24 | @interface HTCityTravelItemModel : HTBaseModel
25 |
26 | /// 游记类别
27 | @property (assign, nonatomic) NSInteger type;
28 | /// item背景
29 | @property (copy, nonatomic) NSString *cover_image;
30 | /// 游记标题
31 | @property (copy, nonatomic) NSString *name;
32 | /// 创建时间
33 | @property (copy, nonatomic) NSString *first_day;
34 | /// 游记地点
35 | @property (copy, nonatomic) NSString *popular_place_str;
36 | /// 游记天数
37 | @property (copy, nonatomic) NSString *day_count;
38 | /// 故事数
39 | @property (copy, nonatomic) NSString *spot_count;
40 | /// 浏览人数
41 | @property (copy, nonatomic) NSString *view_count;
42 | /// 游记id
43 | @property (strong, nonatomic) NSNumber *travelID;
44 | /// 用户model
45 | @property (strong, nonatomic) HTUserModel *user;
46 |
47 | @end
48 |
49 | NS_ASSUME_NONNULL_END
50 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/Model/HTCityTravelItemModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelItemModel.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/20.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTCityTravelItemModel.h"
10 |
11 | @implementation HTUserModel
12 | + (NSDictionary *)modelCustomPropertyMapper {
13 | return @{@"userID" : @"id"};
14 | }
15 | @end
16 |
17 | @implementation HTCityTravelItemModel
18 | + (NSDictionary *)modelCustomPropertyMapper {
19 | return @{@"travelID" : @"id"};
20 | }
21 | @end
22 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/View/HTBannerItemView.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBannerItemView.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTBannerItemView : UIView
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/View/HTBannerItemView.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTBannerItemView.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTBannerItemView.h"
10 |
11 | @interface HTBannerItemView ()
12 | /// icon
13 | @property (strong, nonatomic) SDAnimatedImageView *iconImage;
14 | @end
15 |
16 | @implementation HTBannerItemView
17 |
18 | - (instancetype)initWithFrame:(CGRect)frame{
19 | if (self = [super initWithFrame:frame]) {
20 | self.backgroundColor = UIColorClear;
21 | [self addSubview:self.iconImage];
22 | }
23 | return self;
24 | }
25 |
26 | - (void)layoutSubviews{
27 | [super layoutSubviews];
28 |
29 | [self.iconImage mas_makeConstraints:^(MASConstraintMaker *make) {
30 | make.edges.mas_equalTo(UIEdgeInsetsMake(15, 15, 15, 15));
31 | }];
32 | }
33 |
34 | - (void)cycleViewReloadDataAtIndex:(NSInteger)index parameter:(id)parameter {
35 |
36 | [self.iconImage sd_setImageWithURL:[NSURL URLWithString:parameter] placeholderImage:UIImageMake(@"tripdisplay_photocell_placeholder")];
37 | }
38 | #pragma mark - Getter
39 | - (SDAnimatedImageView *)iconImage{
40 | return HT_LAZY(_iconImage, ({
41 | SDAnimatedImageView *view = [SDAnimatedImageView new];
42 | view.layer.cornerRadius = 8;
43 | view.layer.masksToBounds = true;
44 | view.contentMode = UIViewContentModeScaleAspectFill;
45 | view;
46 | }));
47 | }
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/View/HTCityTravelBannerView.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelBannerView.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTCityTravelBannerView : UIView
14 |
15 | + (instancetype)bindViewWithViewModel:(id)viewModel;
16 |
17 | @end
18 |
19 | NS_ASSUME_NONNULL_END
20 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/View/HTCityTravelCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelCell.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/20.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTCityTravelCell : UITableViewCell
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/ViewModel/HTCityTravelDetailViewModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelDetailViewModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/6/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewModel.h"
10 | #import "HTCityTravelItemModel.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTCityTravelDetailViewModel : HTBaseViewModel
15 | /// 相应游记信息
16 | @property (strong, nonatomic) HTCityTravelItemModel *listItem;
17 | @end
18 |
19 | NS_ASSUME_NONNULL_END
20 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/ViewModel/HTCityTravelDetailViewModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelDetailViewModel.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/6/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTCityTravelDetailViewModel.h"
10 |
11 | @implementation HTCityTravelDetailViewModel
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/CityTravel/ViewModel/HTCityTravelNotesViewModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCityTravelNotesViewModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewModel.h"
10 | #import "HTBannerModel.h"
11 | #import "HTCityTravelItemModel.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | @interface HTCityTravelNotesViewModel : HTBaseViewModel
16 |
17 | /// banner数据
18 | @property (strong, nonatomic) NSMutableArray *bannerData;
19 | /// 列表数据
20 | @property (strong, nonatomic) NSMutableArray *listData;
21 |
22 | @end
23 |
24 | NS_ASSUME_NONNULL_END
25 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/Controller/HTFindASDKViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindASDKViewController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewController.h"
10 | #import "HTFindViewModel.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTFindASDKViewController : HTBaseViewController
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/Controller/HTFindASDKViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindASDKViewController.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/21.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTFindASDKViewController.h"
10 |
11 | @interface HTFindASDKViewController ()
12 |
13 | @end
14 |
15 | @implementation HTFindASDKViewController
16 |
17 | #pragma mark - Life Cycle
18 | - (void)viewDidLoad {
19 | [super viewDidLoad];
20 |
21 | [self configBase];
22 | }
23 |
24 | #pragma mark - Bind
25 | - (void)bindViewModelDidLoad{
26 |
27 | }
28 |
29 | #pragma mark - Config
30 | - (void)configBase{
31 |
32 | }
33 |
34 | #pragma mark - Getter
35 | @end
36 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/Controller/HTFindViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindViewController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewController.h"
10 | #import "HTFindViewModel.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTFindViewController : HTBaseViewController
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/Model/HTFindFeedModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindFeedModel.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/24.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTFindFeedModel.h"
10 |
11 | @implementation HTFindUserModel
12 | + (NSDictionary *)modelCustomPropertyMapper {
13 | return @{@"ID" : @"id"};
14 | }
15 | @end
16 |
17 | @implementation HTFindProductModel
18 | + (NSDictionary *)modelCustomPropertyMapper {
19 | return @{@"ID" : @"id"};
20 | }
21 | @end
22 |
23 | @implementation HTFindFeedModel
24 | + (NSDictionary *)modelContainerPropertyGenericClass {
25 | return @{@"liked_users" : [HTFindUserModel class]};
26 | }
27 | @end
28 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/Model/HTFindVideosModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindVideosModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/24.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTBaseModel.h"
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTFindVideosModel : HTBaseModel
14 |
15 | /// 视频拍摄地址
16 | @property (copy, nonatomic) NSString *address;
17 | /// 背景图片地址
18 | @property (copy, nonatomic) NSString *cover;
19 | /// 喜欢人数
20 | @property (copy, nonatomic) NSString *liked_count;
21 | /// 价格
22 | @property (copy, nonatomic) NSString *price;
23 | /// 活动id
24 | @property (copy, nonatomic) NSString *product_id;
25 | /// 活动标题
26 | @property (copy, nonatomic) NSString *product_title;
27 | /// 视频地址
28 | @property (copy, nonatomic) NSString *show_url;
29 | /// 观看人数
30 | @property (copy, nonatomic) NSString *views;
31 | /// 距离
32 | @property (copy, nonatomic) NSString *distance;
33 |
34 | @end
35 |
36 | NS_ASSUME_NONNULL_END
37 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/Model/HTFindVideosModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindVideosModel.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/24.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "HTFindVideosModel.h"
10 |
11 | @implementation HTFindVideosModel
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/View/HTFindFeedCell.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindFeedCell.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/24.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTFindFeedCell : UITableViewCell
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/View/HTFindVideoItemView.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindVideoItemView.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/24.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTFindVideoItemView : UIView
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/View/HTFindVideoView.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindVideoView.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/24.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTFindVideoView : UIView
14 |
15 | + (instancetype)bindViewWithViewModel:(id)viewModel;
16 |
17 | @end
18 |
19 | NS_ASSUME_NONNULL_END
20 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Find/ViewModel/HTFindViewModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFindViewModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseViewModel.h"
10 | #import "HTFindFeedModel.h"
11 | #import "HTFindVideosModel.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | @interface HTFindViewModel : HTBaseViewModel
16 |
17 | /// feed
18 | @property (strong, nonatomic) NSMutableArray *feedData;
19 | /// video
20 | @property (strong, nonatomic) NSMutableArray *videoData;
21 |
22 | /// 列表
23 | @property (strong, nonatomic) RACCommand *listCommand;
24 | @end
25 |
26 | NS_ASSUME_NONNULL_END
27 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Main/HTFoldingTabBarControllerConfig.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTFoldingTabBarControllerConfig.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/19.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | @interface HTFoldingTabBarControllerConfig : NSObject
16 |
17 | @property (strong, nonatomic,readonly) YALFoldingTabBarController *flodingTabBarController;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Main/HTNavigationController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTNavigationController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTNavigationController : QMUINavigationController
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Classes/Main/HTNavigationController.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTNavigationController.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTNavigationController.h"
10 |
11 | @interface HTNavigationController ()
12 |
13 | @end
14 |
15 | @implementation HTNavigationController
16 |
17 | - (void)viewDidLoad {
18 | [super viewDidLoad];
19 | }
20 |
21 | #pragma mark - Public Method
22 | - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
23 |
24 | [self setUpNavigationBarAppearance];
25 |
26 | if (self.viewControllers.count > 0) {
27 | viewController.hidesBottomBarWhenPushed = true;
28 | }
29 | [super pushViewController:viewController animated:true];
30 | }
31 |
32 | #pragma mark - 设置全局的导航栏属性
33 | - (void)setUpNavigationBarAppearance {
34 |
35 | UINavigationBar *navigationBarAppearance = [UINavigationBar appearance];
36 |
37 | NSDictionary *textAttributes = @{NSFontAttributeName:textFontPingFangRegularFont(18),
38 | NSForegroundColorAttributeName: UIColorWhite};
39 |
40 | [navigationBarAppearance setTitleTextAttributes:textAttributes];
41 | navigationBarAppearance.tintColor = UIColorWhite;
42 | navigationBarAppearance.barTintColor = UIColorMake(80, 189, 203);
43 | navigationBarAppearance.translucent = true;
44 | }
45 | @end
46 |
--------------------------------------------------------------------------------
/HeartTrip/UIKitComponents/HTHUD/HTHUD.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTHUD.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/2/22.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTHUD : NSObject
14 |
15 | /// 展示在Window上
16 | + (void)loadingViewInKeyWindow;
17 | /// 移除Window上的HUD
18 | + (void)dismiss;
19 |
20 | /// 展示在相应view上
21 | + (void)loadingViewInView:(UIView * _Nullable)view;
22 | /// 移除相应view上的HUD
23 | + (void)dismissWithView:(UIView * _Nullable)view;
24 |
25 | @end
26 |
27 | NS_ASSUME_NONNULL_END
28 |
--------------------------------------------------------------------------------
/HeartTrip/UIKitComponents/HTTipsView/HTBaseBottomTipView.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBaseBottomTipView.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/2/22.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTBaseCenterTipView.h"
11 |
12 | @interface HTBaseBottomTipView : UIView
13 |
14 | + (void)showTipViewToView:(UIView *)view
15 | size:(CGSize)size
16 | contentView:(UIView *)contentView // view
17 | tipViewStatusCallback:(void (^)(HTBaseTipViewShowStatus showStatus))tipViewStatusCallback;
18 |
19 |
20 | + (void)showTipViewToView:(UIView *)view
21 | size:(CGSize)size
22 | contentViewClass:(Class)contentViewClass // Class
23 | tipViewStatusCallback:(void (^)(HTBaseTipViewShowStatus showStatus))tipViewStatusCallback;
24 |
25 |
26 | + (void)showTipViewToView:(UIView *)view
27 | size:(CGSize)size
28 | contentViewNibName:(NSString *)contentViewNibName // // Xib
29 | tipViewStatusCallback:(void (^)(HTBaseTipViewShowStatus showStatus))tipViewStatusCallback;
30 |
31 | + (instancetype)getInstanceWithInView:(UIView *)view;
32 |
33 | + (void)showHUD;
34 | + (void)dismissHUD;
35 |
36 | + (void)showHudForView:(UIView *)view;
37 | + (void)dismissHudForView:(UIView *)view;
38 |
39 | + (void)dismissWithCompletion:(void(^)(void))completion;
40 | + (void)dismissForView:(UIView *)view completion:(void(^)(void))completion;
41 |
42 | + (void)resetBlackAlpha:(CGFloat)alpha inView:(UIView *)inView;
43 |
44 | @end
45 |
46 |
47 |
--------------------------------------------------------------------------------
/HeartTrip/UIKitComponents/HTTipsView/HTShowTipsView.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTShowTipsView.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/19.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTShowTipsView : NSObject
14 |
15 | /**
16 | * 展示提示信息
17 | *
18 | * @param message 信息内容
19 | */
20 | + (void)showTips:(NSString *)message;
21 | + (RACSignal *(^)(NSString *message))signal;
22 | + (RACCommand *(^)(NSString *message))command;
23 |
24 |
25 | /**
26 | * 展示提示信息
27 | *
28 | * @param message 信息内容
29 | * @param position 展示的位置
30 | * @param point 偏移位置
31 | */
32 | + (void)showTips:(NSString *)message withPosition:(QMUIToastViewPosition)position withOffset:(CGPoint)point;
33 | + (RACSignal *(^)(NSString *message,QMUIToastViewPosition,CGPoint))signalPosition;
34 | + (RACCommand *(^)(NSString *message,QMUIToastViewPosition,CGPoint))commandPosition;
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/HeartTrip/UIKitComponents/HTTipsView/HTTipsViewKit.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTTipsViewKit.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/2/22.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 | #ifndef HTTipsViewKit_h
9 | #define HTTipsViewKit_h
10 |
11 | #import "HTBaseCenterTipView.h"
12 | #import "HTActionTipsView.h"
13 | #import "HTShowTipsView.h"
14 |
15 | #endif /* HCTipsViewKit_h */
16 |
--------------------------------------------------------------------------------
/HeartTrip/UIKitComponents/SwiftAdapter/HTDarkModeInit.swift:
--------------------------------------------------------------------------------
1 | //
2 | // HTDarkModeInit.swift
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/23.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import FluentDarkModeKit
11 |
12 | @objcMembers class HTDarkModeInit: NSObject {
13 | func toInit() {
14 | let configuration = DMEnvironmentConfiguration()
15 | configuration.themeChangeHandler = {
16 | print("theme changed")
17 | }
18 | if #available(iOS 13.0, *) {
19 | configuration.windowThemeChangeHandler = { window in
20 | print("\(window) theme changed")
21 | }
22 | }
23 | DarkModeManager.setup(with: configuration)
24 | DarkModeManager.register(with: UIApplication.shared)
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/HeartTrip/UIKitComponents/SwiftAdapter/HeartTrip-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | @import UIKit;
6 | @import Foundation;
7 |
--------------------------------------------------------------------------------
/HeartTrip/Util/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Util/.DS_Store
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/HTCategory.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTCategory.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/12.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #ifndef HTCategory_h
10 | #define HTCategory_h
11 |
12 |
13 | // RAC
14 | #import "RACSubject+Extension.h"
15 | #import "NSObject+RACExtension.h"
16 |
17 |
18 | // UIView
19 |
20 |
21 | // UIScrollView
22 | #import "UIScrollView+Refresh.h"
23 |
24 | // UITableView
25 | #import "UITableView+Refresh.h"
26 |
27 | // UICollectionView
28 | #import "UICollectionView+Refresh.h"
29 |
30 | // UILabel
31 |
32 |
33 | // UIImage
34 | #import "UIImage+HTRoundImage.h"
35 |
36 |
37 | // UIButton
38 |
39 |
40 | // UIImageView
41 | #import "UIImageView+HTRoundImage.h"
42 |
43 |
44 | // UIBarButtonItem
45 |
46 |
47 | // UINavigationController
48 |
49 |
50 | // NSObject
51 |
52 |
53 | // NSString
54 |
55 |
56 | // NSArray
57 | #import "NSArray+Sudoku.h"
58 |
59 | // NSDictionary
60 |
61 |
62 | // NSDecimalNumber
63 |
64 |
65 | // NSBundle
66 |
67 |
68 | // NSDate
69 |
70 |
71 | // Other
72 |
73 |
74 | #endif /* HTCategory_h */
75 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UICollectionView+Refresh.h:
--------------------------------------------------------------------------------
1 | //
2 | // UICollectionView+Refresh.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UICollectionView (Refresh)
12 |
13 | /// 给UICollectionView增加上下拉刷新 (KK)
14 | /// @param headerRefreshBlock 头部进入刷新的时候会调用的方法 如果传空,则头部不添加
15 | /// @param footerRefreshBlock 尾部进入刷新的时候会调用的方法 如果传空,则尾部不添加
16 | - (void)addRefreshWithKaKaHeaderBlock:(void(^)(void))headerRefreshBlock
17 | withKaKaFooterBlock:(void(^)(void))footerRefreshBlock;
18 |
19 | /// 停止刷新
20 | - (void)endRefresh;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UICollectionView+Refresh.m:
--------------------------------------------------------------------------------
1 | //
2 | // UICollectionView+Refresh.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import "UICollectionView+Refresh.h"
10 |
11 | @implementation UICollectionView (Refresh)
12 |
13 | #pragma mark - KakaRefesh
14 | - (void)addRefreshWithKaKaHeaderBlock:(void (^)(void))headerRefreshBlock
15 | withKaKaFooterBlock:(void (^)(void))footerRefreshBlock {
16 | if (headerRefreshBlock) {
17 | [self bindHeadRefreshHandler:^{
18 | dispatch_main_async_safe(^{
19 | headerRefreshBlock();
20 | });
21 | }
22 | themeColor:UIColorMakeWithHex(@"#62BCCC")
23 | refreshStyle:KafkaRefreshStyleReplicatorCircle];
24 | self.headRefreshControl.backgroundColor = UIColorClear;
25 | }
26 |
27 | if (footerRefreshBlock) {
28 | [self bindFootRefreshHandler:^{
29 | dispatch_main_async_safe(^{
30 | footerRefreshBlock();
31 | });
32 | }
33 | themeColor:UIColorMakeWithHex(@"#62BCCC")
34 | refreshStyle:KafkaRefreshStyleReplicatorAllen];
35 | // self.footRefreshControl.hidden = YES;
36 | }
37 | }
38 |
39 | - (void)endRefresh {
40 | [self.headRefreshControl endRefreshing];
41 | [self.footRefreshControl endRefreshing];
42 | }
43 | @end
44 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UIImageView+HTRoundImage.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIImageView+HTRoundImage.h
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/10/9.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "UIImage+HTRoundImage.h"
11 |
12 | @interface UIImageView (HTRoundImage)
13 |
14 | - (void)HT_setImageWithCornerRadius:(CGFloat)radius
15 | imageURL:(NSURL *)imageURL
16 | placeholder:(NSString *)placeholder
17 | size:(CGSize)size;
18 |
19 | - (void)HT_setImageWithCornerRadius:(CGFloat)radius
20 | imageURL:(NSURL *)imageURL
21 | placeholder:(NSString *)placeholder
22 | contentMode:(UIViewContentMode)contentMode
23 | size:(CGSize)size;
24 |
25 | - (void)HT_setImageWithHTRadius:(HTRadius)radius
26 | imageURL:(NSURL *)imageURL
27 | placeholder:(NSString *)placeholder
28 | contentMode:(UIViewContentMode)contentMode
29 | size:(CGSize)size;
30 |
31 | - (void)HT_setImageWithHTRadius:(HTRadius)radius
32 | imageURL:(NSURL *)imageURL
33 | placeholder:(NSString *)placeholder
34 | borderColor:(UIColor *)borderColor
35 | borderWidth:(CGFloat)borderWidth
36 | backgroundColor:(UIColor *)backgroundColor
37 | contentMode:(UIViewContentMode)contentMode
38 | size:(CGSize)size;
39 | @end
40 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UIScrollView+Refresh.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+Refresh.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIScrollView (Refresh)
12 |
13 | /// 给UIScrollView增加上下拉刷新 (KK)
14 | /// @param headerRefreshBlock 头部进入刷新的时候会调用的方法 如果传空,则头部不添加
15 | /// @param footerRefreshBlock 尾部进入刷新的时候会调用的方法 如果传空,则尾部不添加
16 | - (void)addRefreshWithKaKaHeaderBlock:(void (^)(void))headerRefreshBlock
17 | withKaKaFooterBlock:(void (^)(void))footerRefreshBlock;
18 |
19 | /// 停止刷新
20 | - (void)endRefresh;
21 | @end
22 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UIScrollView+Refresh.m:
--------------------------------------------------------------------------------
1 | //
2 | // UIScrollView+Refresh.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import "UIScrollView+Refresh.h"
10 |
11 | @implementation UIScrollView (Refresh)
12 | #pragma mark - KakaRefesh
13 | - (void)addRefreshWithKaKaHeaderBlock:(void (^)(void))headerRefreshBlock
14 | withKaKaFooterBlock:(void (^)(void))footerRefreshBlock {
15 | if (headerRefreshBlock) {
16 | [self bindHeadRefreshHandler:^{
17 | dispatch_main_async_safe(^{
18 | headerRefreshBlock();
19 | });
20 | }
21 | themeColor:UIColorMakeWithHex(@"#62BCCC")
22 | refreshStyle:KafkaRefreshStyleReplicatorCircle];
23 | self.headRefreshControl.backgroundColor = UIColorClear;
24 | }
25 |
26 | if (footerRefreshBlock) {
27 | [self bindFootRefreshHandler:^{
28 | dispatch_main_async_safe(^{
29 | footerRefreshBlock();
30 | });
31 | }
32 | themeColor:UIColorMakeWithHex(@"#62BCCC")
33 | refreshStyle:KafkaRefreshStyleReplicatorAllen];
34 | // self.footRefreshControl.hidden = YES;
35 | }
36 | }
37 |
38 | - (void)endRefresh {
39 | [self.headRefreshControl endRefreshing];
40 | [self.footRefreshControl endRefreshing];
41 | }
42 | @end
43 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UITableView+Refresh.h:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+Refresh.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UITableView (Refresh)
12 |
13 | /// 给UITableView增加上下拉刷新 (KK)
14 | /// @param headerRefreshBlock 头部进入刷新的时候会调用的方法 如果传空,则头部不添加
15 | /// @param footerRefreshBlock 尾部进入刷新的时候会调用的方法 如果传空,则尾部不添加
16 | - (void)addRefreshWithKaKaHeaderBlock:(void (^)(void))headerRefreshBlock
17 | withKaKaFooterBlock:(void (^)(void))footerRefreshBlock;
18 |
19 | /// 停止刷新
20 | - (void)endRefresh;
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Category/UIKit/UITableView+Refresh.m:
--------------------------------------------------------------------------------
1 | //
2 | // UITableView+Refresh.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import "UITableView+Refresh.h"
10 |
11 |
12 | @implementation UITableView (Refresh)
13 |
14 | #pragma mark
15 | #pragma mark - KakaRefesh
16 | - (void)addRefreshWithKaKaHeaderBlock:(void (^)(void))headerRefreshBlock
17 | withKaKaFooterBlock:(void (^)(void))footerRefreshBlock {
18 |
19 | if (headerRefreshBlock) {
20 | [self bindHeadRefreshHandler:^{
21 | dispatch_main_async_safe(^{
22 | headerRefreshBlock();
23 | });
24 | }
25 | themeColor:UIColorMakeWithHex(@"#62BCCC")
26 | refreshStyle:KafkaRefreshStyleReplicatorCircle];
27 | self.headRefreshControl.backgroundColor = UIColorClear;
28 | }
29 |
30 | if (footerRefreshBlock) {
31 | [self bindFootRefreshHandler:^{
32 | dispatch_main_async_safe(^{
33 | footerRefreshBlock();
34 | });
35 | }
36 | themeColor:UIColorMakeWithHex(@"#62BCCC")
37 | refreshStyle:KafkaRefreshStyleReplicatorAllen];
38 | // self.footRefreshControl.hidden = YES;
39 | }
40 | }
41 |
42 | - (void)endRefresh {
43 | [self.headRefreshControl endRefreshing];
44 | [self.footRefreshControl endRefreshing];
45 | }
46 | @end
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Configure/HTConst.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTConst.h
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/9/13.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 |
12 | /********** Project Key ***********/
13 |
14 | /// 返回数据结果中data字段key
15 | FOUNDATION_EXTERN NSString *const HT_Data;
16 | /// Bugly的key
17 | FOUNDATION_EXTERN NSString *const BuglyAppKey;
18 |
19 |
20 | // 首页banner数据key
21 | FOUNDATION_EXTERN NSString *const BannerDatakey;
22 | // 首页热门游记数据key
23 | FOUNDATION_EXTERN NSString *const TravelDatakey;
24 | // 发现视频数据key
25 | FOUNDATION_EXTERN NSString *const FindVideoDatakey;
26 | // 发现feed数据key
27 | FOUNDATION_EXTERN NSString *const FindFeedDatakey;
28 | // 经度key
29 | FOUNDATION_EXTERN NSString *const Longitudekey;
30 | // 纬度key
31 | FOUNDATION_EXTERN NSString *const Latitudekey;
32 | // 城市名key
33 | FOUNDATION_EXTERN NSString *const CityNamekey;
34 | // 网页标题key
35 | FOUNDATION_EXTERN NSString *const ViewTitlekey;
36 | // 网页请求地址key
37 | FOUNDATION_EXTERN NSString *const RequestURLkey;
38 | // WebViewNav的导航类型key
39 | FOUNDATION_EXTERN NSString *const NavBarStyleTypekey;
40 | // 网络状态类型key
41 | FOUNDATION_EXTERN NSString *const NetWorkStatusTypekey;
42 | // Web页面key
43 | FOUNDATION_EXTERN NSString *const WebViewTypekey;
44 | // model下标key
45 | FOUNDATION_EXTERN NSString *const DataIndex;
46 |
47 |
48 | /********** 网络请求地址 ***********/
49 |
50 | // 首页
51 | FOUNDATION_EXTERN NSString *const CityTravel_URL;
52 |
53 | // 发现
54 | FOUNDATION_EXTERN NSString *const Find_URL;
55 | // 更多视频
56 | FOUNDATION_EXTERN NSString *const ExploreMore_URL;
57 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Configure/HTConst.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTConst.m
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/9/13.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTConst.h"
10 |
11 | /********** Project Key ***********/
12 |
13 | /// 返回数据结果中data字段key
14 | NSString *const HT_Data = @"data";
15 | /// Bugly的key
16 | NSString *const BuglyAppKey = @"2742de84d1";
17 |
18 | // 首页banner数据key
19 | NSString *const BannerDatakey = @"BannerDatakey";
20 | // 首页热门游记数据key
21 | NSString *const TravelDatakey = @"TravelDatakey";
22 | // 发现视频数据key
23 | NSString *const FindVideoDatakey = @"FindVideoDatakey";
24 | // 发现feed数据key
25 | NSString *const FindFeedDatakey = @"FindFeedDatakey";
26 | // 经度key
27 | NSString *const Longitudekey = @"Longitudekey";
28 | // 纬度key
29 | NSString *const Latitudekey = @"Latitudekey";
30 | // 城市名key
31 | NSString *const CityNamekey = @"CityNamekey";
32 | // 网页标题key
33 | NSString *const ViewTitlekey = @"ViewTitlekey";
34 | // 数据请求地址key
35 | NSString *const RequestURLkey = @"RequestURLkey";
36 | // ViewNav的导航类型key
37 | NSString *const NavBarStyleTypekey = @"NavBarStyleTypekey";
38 | // ViewNav的导航类型key
39 | NSString *const NetWorkStatusTypekey = @"NetWorkStatusTypekey";
40 | // Web页面key
41 | NSString *const WebViewTypekey = @"WebViewTypekey";
42 | // model下标key
43 | NSString *const DataIndex = @"DataIndex";
44 |
45 |
46 | /********** 网络请求地址 ***********/
47 |
48 | // 首页
49 | NSString *const CityTravel_URL = @"/v2/index/";
50 |
51 | // 发现
52 | NSString *const Find_URL = @"/hunter/feeds/";
53 | // 更多视频
54 | NSString *const ExploreMore_URL = @"/hunter/videos/";
55 |
56 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Log/HTLogFormatter.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTLogFormatter.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/12.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTLogFormatter : NSObject
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Networking/HTRequestList.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTRequestList.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import
11 | #import
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | /// 请求服务
16 | #define HTRequestServer_Check(make) \
17 | make(HTRequestServer_Main, = 1, api.breadtrip.com) \
18 |
19 | DECLARE_ENUM(HTRequestServer, HTRequestServer_Check)
20 |
21 | typedef void(^HTRequestConfigure)(HTRequestListConfigure *configure);
22 |
23 | @interface HTRequestList : NSObject
24 |
25 | /**
26 | post请求
27 |
28 | @param url 请求地址
29 | @param params 参数
30 | @param configure 其他配置
31 | @param success 成功回调
32 | @param fail 失败回调
33 | @return task
34 | */
35 | + (HTURLSessionTask *)requestPost:(NSString * _Nullable)url
36 | params:(id _Nullable)params
37 | configure:(HTRequestConfigure _Nullable)configure
38 | success:(HTResponseSuccess _Nullable)success
39 | fail:(HTResponseFail _Nullable)fail;
40 |
41 | /**
42 | get请求
43 |
44 | @param url 请求地址
45 | @param params 参数
46 | @param configure 其他配置
47 | @param success 成功回调
48 | @param fail 失败回调
49 | @return task
50 | */
51 | + (HTURLSessionTask *)requestGet:(NSString * _Nullable)url
52 | params:(id _Nullable)params
53 | configure:(HTRequestConfigure _Nullable)configure
54 | success:(HTResponseSuccess _Nullable)success
55 | fail:(HTResponseFail _Nullable)fail;
56 |
57 | @end
58 |
59 | NS_ASSUME_NONNULL_END
60 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Networking/RACSignal+Request.h:
--------------------------------------------------------------------------------
1 | //
2 | // RACSignal+Request.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2020/11/20.
6 | // Copyright © 2020 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTRequestList.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | typedef void (^requestSignalBlock)(id response, id subscriber);
15 |
16 | @interface RACSignal (Request)
17 |
18 | /**
19 | signal的get请求,可配置请求体
20 |
21 | @param url 请求地址
22 | @param params 参数
23 | @param configure 其他配置
24 | @param handleSignal 自己处理处理信号发送,传入nil 默认处理
25 | @return Signal
26 | */
27 | + (instancetype)signalGetAuth:(NSString * _Nullable)url
28 | params:(id _Nullable)params
29 | configure:(HTRequestConfigure _Nullable)configure
30 | handleSignal:(requestSignalBlock _Nullable)handleSignal;
31 |
32 | /**
33 | signal的post请求
34 |
35 | @param url 请求地址
36 | @param params 参数
37 | @param configure 其他配置
38 | @param handleSignal 自己处理处理信号发送,传入nil 默认处理
39 | @return Signal
40 | */
41 | + (instancetype)signalPostAuth:(NSString * _Nullable)url
42 | params:(id _Nullable)params
43 | configure:(HTRequestConfigure _Nullable)configure
44 | handleSignal:(requestSignalBlock _Nullable)handleSignal;
45 |
46 | @end
47 |
48 | NS_ASSUME_NONNULL_END
49 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Util/RouteMediator/.DS_Store
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/AppModule/HTAppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTAppDelegate.h
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/9/18.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface HTAppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | /// 默认在debug模式下打印所有的模块方法调用和耗时
16 | - (BOOL)shouldModuleMetrics;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/AppModule/QTAppModuleManager.h:
--------------------------------------------------------------------------------
1 | //
2 | // QTModuleManager.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/7/26.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "QTAppModule.h"
11 |
12 | /// 结构体,用于编译期注册
13 | struct QTAppModuleInfo{
14 | char const * className;
15 | long priority;
16 | };
17 |
18 | #define QTAppEventPriorityHigh LONG_MAX
19 | #define QTAppEventPriorityDefault 0
20 | #define QTAppEventPriorityLow LONG_MIN
21 |
22 |
23 | /// 注册一个应用生命周期事件监听者
24 | #define QTAppModuleRegister(_class_,_priority_)\
25 | __attribute__((used)) static struct QTAppModuleInfo QTAppModule##_class_ \
26 | __attribute__ ((used, section ("__DATA,__QTEventBus"))) =\
27 | {\
28 | .className = #_class_,\
29 | .priority = _priority_,\
30 | };
31 |
32 | /// 非线程安全,需要在主线程调用
33 | @interface QTAppModuleManager : NSObject
34 |
35 | - (instancetype)init NS_UNAVAILABLE;
36 |
37 | /// 单例
38 | + (instancetype)shared;
39 |
40 | /// 迭代
41 | - (void)enumerateModulesUsingBlock:(void(^)(Class module))block;
42 |
43 | /// 注册
44 | - (void)registerAppModule:(Class)module priority:(long)priority;
45 |
46 | /// 删除注册
47 | - (void)removeAppModule:(Class)module;
48 |
49 | @end
50 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/AppModule/QTEventBus+AppModule.h:
--------------------------------------------------------------------------------
1 | //
2 | // QTEventBus+AppModule.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/8/9.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #ifndef QTEventBus_UIApplication_h
10 | #define QTEventBus_UIApplication_h
11 |
12 | #import "QTAppModule.h"
13 | #import "QTAppEvents.h"
14 | #import "QTAppModuleManager.h"
15 | #import "QTEventBus.h"
16 |
17 | #endif /* QTEventBus_UIApplication_h */
18 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/NSNotification+QTEvent.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotification+QTEvent.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/6/1.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "QTEventTypes.h"
11 |
12 | @interface NSNotification (QTEvent)
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/NSNotification+QTEvent.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSNotification+QTEvent.m
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/6/1.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import "NSNotification+QTEvent.h"
10 |
11 | @implementation NSNotification (QTEvent)
12 |
13 | + (Class)eventClass{
14 | return [NSNotification class];
15 | }
16 |
17 | - (NSString *)eventSubType{
18 | return self.name;
19 | }
20 |
21 |
22 | @end
23 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/NSObject+QTEventBus_Private.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QTEventBus_Private.h
3 | // Demo
4 | //
5 | // Created by Leo on 2018/11/18.
6 | // Copyright © 2018 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "QTDisposeBag.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface NSObject (QTEventBus_Private)
15 |
16 | /// 释放池
17 | @property (strong, nonatomic, readonly) QTDisposeBag *eb_disposeBag;
18 |
19 | @end
20 |
21 | NS_ASSUME_NONNULL_END
22 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/NSObject+QTEventBus_Private.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+QTEventBus_Private.m
3 | // Demo
4 | //
5 | // Created by Leo on 2018/11/18.
6 | // Copyright © 2018 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import "NSObject+QTEventBus_Private.h"
10 | #import
11 |
12 | static const char event_bus_disposeContext;
13 |
14 | @implementation NSObject (QTEventBus_Private)
15 |
16 | - (QTDisposeBag *)eb_disposeBag{
17 | QTDisposeBag * bag = objc_getAssociatedObject(self, &event_bus_disposeContext);
18 | if (!bag) {
19 | bag = [[QTDisposeBag alloc] init];
20 | objc_setAssociatedObject(self, &event_bus_disposeContext, bag, OBJC_ASSOCIATION_RETAIN);
21 | }
22 | return bag;
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/NSString+QTEevnt.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+QTEevnt.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/11/9.
6 | // Copyright © 2018 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "QTEventTypes.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface NSString (QTEevnt)
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/NSString+QTEevnt.m:
--------------------------------------------------------------------------------
1 | //
2 | // NSString+QTEevnt.m
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/11/9.
6 | // Copyright © 2018 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import "NSString+QTEevnt.h"
10 |
11 | @implementation NSString (QTEevnt)
12 |
13 | - (NSString *)eventSubType{
14 | return [self copy];
15 | }
16 |
17 | + (Class)eventClass{
18 | return [NSString class];
19 | }
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/QTDisposeBag.h:
--------------------------------------------------------------------------------
1 | //
2 | // QTDisposeBag.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/6/4.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "QTEventTypes.h"
11 |
12 | @interface QTDisposeBag : NSObject
13 |
14 |
15 | /// 增加一个需要释放的token
16 | /// @param token 释放的token
17 | - (void)addToken:(id)token;
18 |
19 | @end
20 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/QTDisposeBag.m:
--------------------------------------------------------------------------------
1 | //
2 | // QTDisposeBag.m
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/6/4.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import "QTDisposeBag.h"
10 | #import
11 |
12 | @interface QTDisposeBag()
13 |
14 | @property (strong, nonatomic) NSMutableArray> * tokens;
15 | @property (assign, nonatomic) os_unfair_lock taskLock;
16 |
17 | @end
18 |
19 | @implementation QTDisposeBag
20 |
21 | - (NSMutableArray> *)tokens{
22 | if (!_tokens) {
23 | _tokens = [[NSMutableArray alloc] init];
24 | _taskLock = OS_UNFAIR_LOCK_INIT;
25 | }
26 | return _tokens;
27 | }
28 |
29 | - (void)addToken:(id)token{
30 | os_unfair_lock_lock(&_taskLock);
31 | if (token && [token conformsToProtocol:@protocol(QTEventToken)]) {
32 | [self.tokens addObject:token];
33 | }
34 | os_unfair_lock_unlock(&_taskLock);
35 | }
36 |
37 | - (void)dealloc{
38 | os_unfair_lock_lock(&_taskLock);
39 | for (id token in self.tokens) {
40 | if ([token respondsToSelector:@selector(dispose)]) {
41 | [token dispose];
42 | }
43 | }
44 | os_unfair_lock_unlock(&_taskLock);
45 | }
46 |
47 | @end
48 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/QTEventBusCollection.h:
--------------------------------------------------------------------------------
1 | //
2 | // QTEventBusCollection.h
3 | // QTRadio
4 | //
5 | // Created by Leo on 2018/2/7.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol QTEventBusContainerValue
12 |
13 | /// 值的唯一标识符
14 | - (NSString *)valueUniqueId;
15 |
16 | @end
17 |
18 | /// 保存监听者的容器,key映射到一个数组,线程安全, 插入,删除 O(1)
19 | @interface QTEventBusCollection> : NSObject
20 |
21 | /// 在key对应的集合中,增加一个对象
22 | /// @param object 插入对象
23 | /// @param key key
24 | - (void)addObject:(ValueType)object forKey:(NSString *)key;
25 |
26 | /**
27 | 删除key对应集合中的一个唯一对象,返回这个key对应的是否为空
28 | */
29 |
30 | /// 删除key对应集合中的一个唯一对象,返回这个key对应的是否为空
31 | /// @param uniqueId 删除对象
32 | /// @param key key
33 | - (BOOL)removeUniqueId:(NSString *)uniqueId ofKey:(NSString *)key;
34 |
35 | /// 返回一组值,注意返回的是指针的浅拷贝
36 | /// @param key key
37 | - (NSArray *)objectsForKey:(NSString *)key;
38 |
39 | @end
40 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/QTEventTypes.h:
--------------------------------------------------------------------------------
1 | //
2 | // QTEventTypes.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/6/1.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @protocol QTEvent
12 |
13 | @optional
14 |
15 | /// 事件的名称 @note: 有些类在运行时是子类,用这个强制返回父类
16 | + (Class)eventClass;
17 |
18 | /// 事件的二级类型
19 | - (NSString *)eventSubType;
20 |
21 | @end
22 |
23 | @protocol QTEventToken
24 |
25 | /// 释放当前的监听
26 | - (void)dispose;
27 |
28 | @end
29 |
30 | /// 提供一套DSL监听
31 | @interface QTEventSubscriberMaker : NSObject
32 |
33 | typedef void (^QTEventNextBlock)(Value event) NS_SWIFT_UNAVAILABLE("");
34 |
35 | /// 事件触发的回调
36 | /// @param hander 回调Block
37 | - (id)next:(QTEventNextBlock)hander;
38 |
39 | /// 监听的队列,设置了监听队列后,副作用事件的监听会变成异步
40 | /// @param queue 队列
41 | - (QTEventSubscriberMaker *)atQueue:(dispatch_queue_t)queue;
42 |
43 | /// 在对象释放的时候,释放监听
44 | /// @param object 释放对象
45 | - (QTEventSubscriberMaker *)freeWith:(id)object;
46 |
47 | /// 二级事件,这个操作符可以多次使用
48 | /// 举个例子:[QTEventBus shared].on(QTJsonEvent.class).ofSubType(@"Login").ofSubType(@"Logout")
49 | /// 表示同时监听QTJsonEvent下面的id为Login和Logout事件
50 | /// @param subType 操作符
51 | - (QTEventSubscriberMaker *)ofSubType:(NSString *)subType;
52 |
53 |
54 | #pragma mark - 点语法扩展
55 |
56 | @property (readonly, nonatomic) QTEventSubscriberMaker *(^atQueue)(dispatch_queue_t);
57 |
58 | @property (readonly, nonatomic) QTEventSubscriberMaker *(^ofSubType)(NSString *);
59 |
60 | @property (readonly, nonatomic) QTEventSubscriberMaker *(^freeWith)(id);
61 |
62 |
63 | @end
64 |
65 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/QTJsonEvent.h:
--------------------------------------------------------------------------------
1 | //
2 | // QTJsonEvent.h
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/7/5.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "QTEventTypes.h"
11 |
12 | /// 通用的JSON Event,用于松耦合事件传递。
13 | @interface QTJsonEvent : NSObject
14 |
15 | - (instancetype)init NS_UNAVAILABLE;
16 |
17 |
18 | /// 事件的唯一id
19 | @property (readonly) NSString * uniqueId;
20 |
21 |
22 | /// 事件的数据,只可能为NSDictionary或者NSArray
23 | @property (readonly) id data;
24 |
25 |
26 | /// 字典初始化
27 | /// @param uniqueId 事件ID
28 | /// @param data 初始化数据
29 | + (instancetype)eventWithId:(NSString *)uniqueId jsonObject:(NSDictionary *)data;
30 |
31 | /// 数组初始化
32 | /// @param uniqueId 事件ID
33 | /// @param data 初始化数据
34 | + (instancetype)eventWithId:(NSString *)uniqueId jsonArray:(NSArray *)data;
35 |
36 |
37 | @end
38 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/AppModule/Core/QTJsonEvent.m:
--------------------------------------------------------------------------------
1 | //
2 | // QTJsonEvent.m
3 | // QTEventBus
4 | //
5 | // Created by Leo on 2018/7/5.
6 | // Copyright © 2018年 Leo Huang. All rights reserved.
7 | //
8 |
9 | #import "QTJsonEvent.h"
10 |
11 | @interface QTJsonEvent()
12 |
13 | @property (nonatomic, copy) NSString * uniqueId;
14 |
15 | @property (nonatomic, strong) id data;
16 |
17 |
18 | @end
19 |
20 | @implementation QTJsonEvent
21 |
22 | - (instancetype)initWithId:(NSString *)unqiueId data:(id)data{
23 | if (self = [super init]) {
24 | _data = data;
25 | _uniqueId = unqiueId;
26 | }
27 | return self;
28 | }
29 |
30 | + (instancetype)eventWithId:(NSString *)uniqueId jsonArray:(NSArray *)data{
31 | NSAssert([data isKindOfClass:[NSArray class]], @"Data must be NSArray");
32 | return [[self alloc] initWithId:uniqueId data:data];
33 | }
34 |
35 | + (instancetype)eventWithId:(NSString *)uniqueId jsonObject:(NSDictionary *)data{
36 | NSAssert([data isKindOfClass:[NSDictionary class]], @"Data must be NSDictionary");
37 | return [[self alloc] initWithId:uniqueId data:data];
38 | }
39 |
40 | - (NSString *)eventSubType{
41 | return self.uniqueId;
42 | }
43 |
44 | @end
45 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/HeartTrip/Util/RouteMediator/URLRouteMediator/.DS_Store
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTBaseEnum.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBaseEnum.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/20.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #ifndef HTBaseEnum_h
10 | #define HTBaseEnum_h
11 |
12 | /// TableView上下拉刷新类型
13 | typedef NS_ENUM(NSUInteger, HTRefreshActionType) {
14 | HTRefreshActionType_First = 0, // 首次加载
15 | HTRefreshActionType_Refresh, // 下拉刷新
16 | HTRefreshActionType_LoadMore, // 加载更多
17 | };
18 |
19 | /// Tableview数据占位图类型
20 | typedef NS_ENUM(NSUInteger, HTEmptyType) {
21 | HTEmptyType_NoStatus = 1U << 0, // 无状态,还未请求接口
22 | HTEmptyType_NoData = 1U << 1, // 暂无数据
23 | HTEmptyType_NetworkError = 1U << 2, // 网络连接异常,请稍后再试
24 | HTEmptyType_OneAction = 1U << 3, // 单个按钮
25 | HTEmptyType_TwoAction = 1U << 4, // 两个按钮
26 | HTEmptyType_Success = 1U << 5 // 请求成功
27 | };
28 |
29 | typedef NS_ENUM(NSUInteger, HCURLRouteActionType) {
30 | HCURLRouteActionType_Push = 0, // Push跳转
31 | HCURLRouteActionType_Present, // Present跳转
32 | HCURLRouteActionType_Pop, // Pop跳转
33 | HCURLRouteActionType_Dismiss, // Dismiss跳转
34 | };
35 |
36 | #endif /* HTBaseEnum_h */
37 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTBaseModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBaseModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @interface HTBaseModel : NSObject
14 |
15 | @end
16 |
17 | NS_ASSUME_NONNULL_END
18 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTBaseModel.m:
--------------------------------------------------------------------------------
1 | //
2 | // HTBaseModel.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/4/18.
6 | // Copyright © 2021 BinBear. All rights reserved.
7 | //
8 |
9 | #import "HTBaseModel.h"
10 |
11 | @implementation HTBaseModel
12 |
13 | - (void)encodeWithCoder:(NSCoder *)aCoder {
14 | [self yy_modelEncodeWithCoder:aCoder];
15 | }
16 | - (id)initWithCoder:(NSCoder *)aDecoder {
17 | self = [super init];
18 | return [self yy_modelInitWithCoder:aDecoder];
19 | }
20 | - (id)copyWithZone:(NSZone *)zone {
21 | return [self yy_modelCopy];
22 | }
23 | - (NSUInteger)hash {
24 | return [self yy_modelHash];
25 | }
26 | - (BOOL)isEqual:(id)object {
27 | return [self yy_modelIsEqual:object];
28 | }
29 | - (NSString *)description {
30 | return [self yy_modelDescription];
31 | }
32 |
33 | @end
34 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTBaseViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBaseViewController.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTBaseViewModel.h"
11 | #import "HTViewControllerProtocol.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | @interface HTBaseViewController<__covariant viewModelType: HTBaseViewModel *> : UIViewController
16 |
17 | /// viewModel
18 | @property (nonatomic,strong,readonly) viewModelType viewModel;
19 |
20 | @end
21 |
22 | NS_ASSUME_NONNULL_END
23 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTBaseViewModel.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTBaseViewModel.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTViewModelProtocol.h"
11 | #import "HTBaseEnum.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | #define isKey(_key) [key isEqualToString:_key]
16 |
17 | @interface HTBaseViewModel : NSObject
18 |
19 | /// 空占位图类型
20 | @property (nonatomic,assign) HTEmptyType emptyType;
21 |
22 | /// 根据key,配置相应的Command
23 | /// @param key key
24 | - (RACCommand *)commandForKey:(NSString * _Nullable)key;
25 |
26 | /// 根据key,配置相应的EnabledSignal
27 | /// @param key key
28 | - (RACSignal *)commandEnabledSignalForKey:(NSString * _Nullable)key;
29 |
30 | /// 根据key,配置Command的执行Signal
31 | /// @param input Command的input
32 | /// @param key key
33 | - (RACSignal *)commandSignalWithInput:(id _Nullable)input forKey:(NSString * _Nullable)key;
34 |
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTViewControllerProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTViewControllerProtocol.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @protocol HTViewModelProtocol;
14 | @protocol HTViewControllerProtocol
15 |
16 | @optional
17 |
18 | /// 路由向下传递的数据
19 | @property (nonatomic,strong,readonly) id parameter;
20 | /// 路由向下传递的viewModel
21 | @property (nonatomic,strong,readonly) id viewModel;
22 |
23 | /// 初始化Controller,并赋值viewModel
24 | /// @param viewModelName viewModel名称
25 | /// @param parameter viewModel参数
26 | + (instancetype)viewControllerWithViewModelName:(NSString * _Nullable)viewModelName
27 | parameter:(id _Nullable)parameter;
28 |
29 | /// viewModel正在初始化,子类实现
30 | - (void)bindViewModelWillLoad;
31 | /// viewModel已初始化,子类实现
32 | - (void)bindViewModelDidLoad;
33 |
34 | /// 栈底的控制器pop时,需要往栈顶的控制器传数据,实现此方法
35 | /// @param name 栈底pop的控制器
36 | /// @param parameter 传输的数据
37 | - (void)popFromViewController:(NSString * _Nullable)name
38 | parameter:(id _Nullable)parameter;
39 |
40 | /// 栈顶的控制器dismiss时,需要往栈底的控制器传数据,实现此方法
41 | /// @param name 栈顶dismiss的控制器
42 | /// @param parameter 传输的数据
43 | - (void)dismissFromViewController:(NSString *)name
44 | parameter:(NSDictionary *)parameter;
45 |
46 | @end
47 |
48 | NS_ASSUME_NONNULL_END
49 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Base/HTViewModelProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTViewModelProtocol.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @protocol HTViewControllerProtocol;
14 | @protocol HTViewModelProtocol
15 |
16 | @optional
17 |
18 | /// 路由向下传递的数据
19 | @property (nonatomic,strong,readonly) id parameter;
20 | /// 当前viewModel所在控制器的导航控制器
21 | @property (nonatomic,weak, readonly) UINavigationController *viewModelNavigationController;
22 | /// 当前viewModel所在控制器
23 | @property (nonatomic,weak, readonly) UIViewController *viewModelController;
24 | /// 根据key配置相应的Command
25 | @property (nonatomic,copy, readonly) RACCommand *(^requestCommand)(NSString *_Nullable key);
26 | /// 根据key配置相应的刷新Signal
27 | @property (nonatomic,copy, readonly) RACSubject *(^refreshSignal)(NSString *_Nullable key);
28 |
29 | /// 初始化一个viewModel,并且赋值viewModel的相应属性
30 | /// @param parameter viewModel参数
31 | + (instancetype)viewModelWithParameter:(id _Nullable)parameter;
32 |
33 | /// viewModel已初始化,子类实现
34 | - (void)viewModelLoad;
35 |
36 | @end
37 |
38 | NS_ASSUME_NONNULL_END
39 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/ModelParser/HTModelParserProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTModelParserProtocol.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | @protocol HTModelParserProtocol
14 |
15 | + (nullable instancetype)ht_modelWithJSON:(id)json;
16 | + (NSArray *)ht_modelArrayWithJSON:(id)json;
17 | - (void)ht_modelSetWithJSON:(id)json;
18 |
19 | - (nullable id)ht_modelToJSONObject;
20 | - (nullable NSData *)ht_modelToJSONData;
21 | - (nullable NSString *)ht_modelToJSONString;
22 |
23 |
24 | + (nullable NSArray *)ht_modelPropertyBlacklist;
25 | + (nullable NSArray *)ht_modelPropertyWhitelist;
26 | + (nullable NSDictionary *)ht_modelCustomPropertyMapper;
27 | + (nullable NSDictionary *)ht_modelContainerPropertyGenericClass;
28 | - (void)ht_modelDidParsedWithDictionary:(NSDictionary *)dictionary;
29 |
30 | @end
31 |
32 | NS_ASSUME_NONNULL_END
33 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/ModelParser/NSObject+HTModelParser.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+HTModelParser.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTModelParserProtocol.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface NSObject (HTModelParser)
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Route/NSObject+HTRouteProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObject+HTRouteProtocol.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTViewControllerRouteProtocol.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface NSObject (HTRouteProtocol)
15 |
16 | @end
17 |
18 | NS_ASSUME_NONNULL_END
19 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Route/RACCommand+HTRoute.m:
--------------------------------------------------------------------------------
1 | //
2 | // RACCommand+HTRoute.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "RACCommand+HTRoute.h"
10 |
11 | @implementation RACCommand (HTRoute)
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/Route/RACSignal+HTRoute.m:
--------------------------------------------------------------------------------
1 | //
2 | // RACSignal+HTRoute.m
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/5/26.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import "RACSignal+HTRoute.h"
10 |
11 | @implementation RACSignal (HTRoute)
12 |
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/URLParser/HTURLRouteParser.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTURLRouteParser.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/6/19.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTURLRouteParserProtocol.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @interface HTURLRouteParser : NSObject
15 |
16 |
17 | @end
18 |
19 | NS_ASSUME_NONNULL_END
20 |
--------------------------------------------------------------------------------
/HeartTrip/Util/RouteMediator/URLRouteMediator/URLParser/HTURLRouteParserProtocol.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTURLRouteParserProtocol.h
3 | // HeartTrip
4 | //
5 | // Created by vin on 2021/6/19.
6 | // Copyright © 2021 Vin. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTBaseEnum.h"
11 |
12 | NS_ASSUME_NONNULL_BEGIN
13 |
14 | @protocol HTURLRouteParserProtocol
15 |
16 | @optional
17 |
18 | /// 路由URL中控制器名称
19 | @property (copy, nonatomic,readonly) NSString *ctrName;
20 | /// 路由URL中viewModel名称
21 | @property (copy, nonatomic,readonly) NSString *vmName;
22 | /// 路由URL中参数
23 | @property (strong,nonatomic,readonly) id parameter;
24 | /// 路由URL中跳转类型
25 | @property (assign,nonatomic,readonly) HCURLRouteActionType actionType;
26 | /// 是否标准的路由
27 | @property (assign,nonatomic,readonly) BOOL isRouteURL;
28 |
29 |
30 | /// 初始化一个路由解析实例
31 | /// @param url 路由
32 | + (instancetype)urlRoutePaeserWithURL:(NSString *)url;
33 |
34 | /// 解析URL
35 | - (void)parseURL;
36 |
37 | @end
38 |
39 | NS_ASSUME_NONNULL_END
40 |
--------------------------------------------------------------------------------
/HeartTrip/Util/Utils/HTUtilsMethod.h:
--------------------------------------------------------------------------------
1 | //
2 | // HTUtilsMethod.h
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/11/24.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface HTUtilsMethod : NSObject
12 |
13 | /// 切割字符串
14 | NSMutableArray *componentsSeparatByString (NSString *numStr, NSString *separatStr);
15 |
16 | /// 删除小数点后面的0
17 | NSString *changeFloat(NSString *stringFloat);
18 |
19 | /// 根据精度格式化字符串,是否加逗号 num: 格式化数字 precision: 精度 isSeparate: 是否加逗号
20 | NSString *stringFormatterCommaWithNumber(id num, NSInteger precision, BOOL isSeparate);
21 |
22 | /// 解决服务器返回数据精度丢失问题
23 | NSString *precisionControl(NSNumber *balance);
24 |
25 | /// 获取小数位数精度
26 | NSInteger getNumberDecimalDigits(double number);
27 |
28 | /// 给数字加逗号
29 | NSString *separateNumberUseCommaWith(NSString *number);
30 |
31 | /// 数量小数位处理,超过10000则以 万 为单位
32 | NSString *countTextCharsForNumber(id number, NSInteger digit);
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/HeartTrip/Vendor/MasonryExtentions/MASConstraintMaker+Forbearance.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASConstraintMaker+Forbearance.h
3 | // Star
4 | //
5 | // Created by 星星 on 16/7/5.
6 | // Copyright © 2016年 Star.China All rights reserved.
7 | //
8 |
9 | #import "MASConstraintMaker.h"
10 | #import "MASForbearance.h"
11 |
12 | @interface MASConstraintMaker (Forbearance)
13 |
14 | @property (nonatomic, strong, readonly) MASForbearance *hugging;
15 | @property (nonatomic, strong, readonly) MASForbearance *compression;
16 | @property (nonatomic, strong, readonly) MASForbearance *compressionResistance;
17 |
18 | @property (nonatomic, strong, readonly) MASForbearance *horizontal;
19 | @property (nonatomic, strong, readonly) MASForbearance *vertical;
20 |
21 | @end
22 |
--------------------------------------------------------------------------------
/HeartTrip/Vendor/MasonryExtentions/MASForbearance.h:
--------------------------------------------------------------------------------
1 | //
2 | // MASForbearance.h
3 | // Star
4 | //
5 | // Created by 星星 on 16/7/5.
6 | // Copyright © 2016年 Star.China All rights reserved.
7 | //
8 |
9 | #import
10 |
11 |
12 | typedef NS_OPTIONS(NSUInteger, MASForbearanceRule) {
13 | MASForbearanceRuleHorizontal = 0x01 << 0,
14 | MASForbearanceRuleVertical = 0x01 << 1,
15 | MASForbearanceRuleHugging = 0x01 << 2,
16 | MASForbearanceRuleCompression = 0x01 << 3
17 | };
18 |
19 |
20 | @class MASForbearance;
21 |
22 | @protocol MASForbearanceDelegate
23 |
24 | - (MASForbearance *)forbearance:(MASForbearance *)forbearance addForbearanceRule:(MASForbearanceRule)forbearanceRule;
25 |
26 | - (MASForbearance *)forbearance:(MASForbearance *)forbearance priority:(MASLayoutPriority)priority;
27 |
28 | @end
29 |
30 | @interface MASForbearance : NSObject
31 |
32 | @property (nonatomic, weak) id delegate;
33 |
34 | // Action
35 | - (MASForbearance *)hugging;
36 | - (MASForbearance *)compression;
37 | - (MASForbearance *)compressionResistance;
38 |
39 | // Axis
40 | - (MASForbearance *)horizontal;
41 | - (MASForbearance *)vertical;
42 |
43 | // Priority
44 | - (MASForbearance *(^)(MASLayoutPriority priority))priority;
45 | - (MASForbearance *(^)(void))priorityRequired;
46 | - (MASForbearance *(^)(void))priorityHigh;
47 | - (MASForbearance *(^)(void))priorityMedium;
48 | - (MASForbearance *(^)(void))priorityLow;
49 | - (MASForbearance *(^)(void))priorityFittingSizeLevel;
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/HeartTrip/Vendor/MasonryExtentions/UIView+Forbearance.h:
--------------------------------------------------------------------------------
1 | //
2 | // UIView+Forbearance.h
3 | // WexWeiCaiFu
4 | //
5 | // Created by 星星 on 16/8/9.
6 | // Copyright © 2016年 SinaPay. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface UIView (Forbearance)
12 |
13 | @property (nonatomic, assign) UILayoutPriority horizontalHuggingPriority;
14 | @property (nonatomic, assign) UILayoutPriority horizontalCompressionResistancePriority;
15 | @property (nonatomic, assign) UILayoutPriority verticalHuggingPriority;
16 | @property (nonatomic, assign) UILayoutPriority verticalCompressionResistancePriority;
17 |
18 | @end
19 |
--------------------------------------------------------------------------------
/HeartTrip/Vendor/NSObjectSafe/NSObjectSafe.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSObjectSafe.h
3 | // NSObjectSafe
4 | //
5 | // Created by jasenhuang on 15/12/29.
6 | // Copyright © 2015年 tencent. All rights reserved.
7 | //
8 |
9 |
10 | /**
11 | * Warn: NSObjectSafe must used in MRC, otherwise it will cause
12 | * strange release error: [UIKeyboardLayoutStar release]: message sent to deallocated instance
13 | */
14 |
15 | #import "TargetConditionals.h"
16 | #if TARGET_OS_IPHONE
17 | #import
18 | #elif TARGET_OS_MAC
19 | #import
20 | #endif
21 |
22 | //! Project version number for NSObjectSafe.
23 | FOUNDATION_EXPORT double NSObjectSafeVersionNumber;
24 |
25 | //! Project version string for NSObjectSafe.
26 | FOUNDATION_EXPORT const unsigned char NSObjectSafeVersionString[];
27 |
28 | // In this header, you should import all the public headers of your framework using statements like #import
29 |
30 | FOUNDATION_EXPORT NSString *const NSSafeNotification;
31 |
32 | @interface NSObject(Swizzle)
33 | + (void)swizzleClassMethod:(SEL)origSelector withMethod:(SEL)newSelector;
34 | - (void)swizzleInstanceMethod:(SEL)origSelector withMethod:(SEL)newSelector;
35 | @end
36 |
37 |
--------------------------------------------------------------------------------
/HeartTrip/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // HeartTrip
4 | //
5 | // Created by 熊彬 on 16/9/9.
6 | // Copyright © 2016年 BinBear. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "HTAppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | NSString * appDelegateClassName;
14 | @autoreleasepool {
15 | appDelegateClassName = NSStringFromClass([HTAppDelegate class]);
16 | }
17 | return UIApplicationMain(argc, argv, nil, appDelegateClassName);
18 | }
19 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | source 'https://cdn.cocoapods.org/'
2 |
3 | install! 'cocoapods',
4 | :generate_multiple_pod_projects => true
5 |
6 | deployment_target = '11.0'
7 | platform :ios, deployment_target
8 |
9 | inhibit_all_warnings!
10 | use_frameworks!
11 |
12 |
13 | def hearttrip_services
14 | # 基础组件
15 | pod 'VinBaseComponents', :git => 'https://github.com/BinBear/VinBaseComponents.git'
16 | pod 'FoldingTabBar', :git => 'https://github.com/BinBear/FoldingTabBar.iOS.git'
17 | end
18 |
19 |
20 | target 'HeartTrip' do
21 |
22 | # 服务组件
23 | hearttrip_services
24 |
25 | # 三方组件
26 | pod 'CocoaLumberjack'
27 | pod 'QMUIKit'
28 | pod 'KafkaRefresh'
29 | pod 'Masonry'
30 | pod 'IQKeyboardManager'
31 | pod 'SDWebImage'
32 | pod 'lottie-ios'
33 | pod 'Texture'
34 | pod 'YYModel'
35 | pod 'YYCategories'
36 | pod 'LBXPermission'
37 | pod 'Bugly'
38 | pod 'FluentDarkModeKit'
39 | pod 'LookinServer', :configurations => ['Debug']
40 | pod 'DoraemonKit/Core', :configurations => ['Debug']
41 |
42 | end
43 |
44 | post_install do |installer|
45 | installer.generated_projects.each do |project|
46 | project.targets.each do |target|
47 | target.build_configurations.each do |config|
48 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
49 | end
50 | end
51 | project.build_configurations.each do |bc|
52 | bc.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
53 | end
54 | end
55 | end
56 |
--------------------------------------------------------------------------------
/ReadmeImage/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/ReadmeImage/.DS_Store
--------------------------------------------------------------------------------
/ReadmeImage/MVVM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/ReadmeImage/MVVM.png
--------------------------------------------------------------------------------
/ReadmeImage/city.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/ReadmeImage/city.png
--------------------------------------------------------------------------------
/ReadmeImage/find.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/ReadmeImage/find.png
--------------------------------------------------------------------------------
/ReadmeImage/finddetail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BinBear/breadtrip-ReactiveCocoa-MVVM-/3c1978ca9fc8b7aba70edbe762603c1b7ac68493/ReadmeImage/finddetail.png
--------------------------------------------------------------------------------