ATONE TREE
.
├── ATONE.md
├── Common
│ ├── AppDelegate.swift (入口)
│ ├── Constants.swift(公共约束)
│ └── Util.swift(工具类)
├── Define(公有定义)
│ ├── AnalyticsScreen.swift
│ ├── Common.swift
│ ├── ErrorMessages.swift
│ ├── NotificationKey.swift
│ ├── OKMessages.swift
│ ├── ReproEventName.swift
│ ├── ReproKey.swift
│ ├── Strings.swift
│ └── UserProfileKeys.swift
├── Models
│ └── CoreData (Billing、Pending、Refund、Shop、Transaction is deprecated in Aftee)
│ ├── Announcement+CoreDataClass.swift
│ ├── Announcement+CoreDataProperties.swift
│ ├── Billing+CoreDataClass.swift
│ ├── Billing+CoreDataProperties.swift
│ ├── BillingAddress+CoreDataClass.swift
│ ├── BillingAddress+CoreDataProperties.swift
│ ├── Item+CoreDataClass.swift
│ ├── Item+CoreDataProperties.swift
│ ├── Member+CoreDataClass.swift
│ ├── Member+CoreDataProperties.swift
│ ├── NSManagedObjectExtensions.swift
│ ├── NotificationSetting+CoreDataClass.swift
│ ├── NotificationSetting+CoreDataProperties.swift
│ ├── OtherRevenue+CoreDataClass.swift
│ ├── OtherRevenue+CoreDataProperties.swift
│ ├── Pending+CoreDataClass.swift
│ ├── Pending+CoreDataProperties.swift
│ ├── Refund+CoreDataClass.swift
│ ├── Refund+CoreDataProperties.swift
│ ├── Shop+CoreDataClass.swift
│ ├── Shop+CoreDataProperties.swift
│ ├── Transaction+CoreDataClass.swift
│ ├── Transaction+CoreDataProperties.swift
│ ├── UserPoint+CoreDataClass.swift
│ └── UserPoint+CoreDataProperties.swift
├── Utils
│ ├── API (网络请求模块)
│ │ ├── APIConnector.swift
│ │ ├── APIDefines.swift
│ │ └── HTTPRequestOperationManager.swift
│ ├── Category(拓展)
│ │ ├── NSLayoutConstraint+Addition.swift
│ │ ├── NSManagedObjectContext+Addition.swift
│ │ ├── NavigationBar+Tabbar.swift
│ │ ├── String+Addition.swift
│ │ ├── String+Validate.swift
│ │ ├── UIButton+Addition.swift
│ │ ├── UIImage+Addition.swift
│ │ ├── UIScreen+Addition.swift
│ │ ├── UIView+Addition.swift
│ │ └── UIWindow+Addition.swift
│ ├── CoreData
│ │ └── CoreData.swift
│ └── Manager(管理模块)
│ ├── Analytics
│ │ └── AnalyticsManager.swift
│ ├── CustomAlert(自定义 Alert)
│ │ └── CustomAlertViewManager.swift
│ ├── Menu(Menu 管理,将 Menu 的点击事件统一管理)
│ │ └── MenuManager.swift
│ ├── New\ Group
│ │ └── ReproManager.swift
│ ├── Notification(Push 管理,将所有的 Push 集中处理,选择是进行跳转还是做本地存储)
│ │ └── NotificationManager.swift
│ └── TouchID(管理 Touch ID,返回认证情况,以方便管理)
│ └── TouchIDManager.swift
└── Views
├── BaseModule
│ ├── CollectionView
│ │ └── CollectionViewCell
│ │ ├── BaseCollectionViewCell.swift
│ │ └── BaseCollectionViewCell.xib
│ ├── NavigationController
│ │ ├── NavigationController.swift
│ │ └── NavigationController.xib
│ ├── TabBar
│ │ ├── TabBarViewController.swift
│ │ └── TabBarViewController.xib
│ ├── TableView
│ │ └── TableViewCell
│ │ ├── BaseTableViewCell.swift
│ │ └── BaseTableViewCell.xib
│ └── WebView
│ ├── ATNWebViewController.xib
│ ├── FAQWebViewController.swift
│ ├── FAQWebViewController.xib
│ ├── WebViewController.swift
│ └── WebViewController.xib
├── BaseView
│ ├── AfterLogin
│ │ ├── Announcement
│ │ │ ├── ATNAnnouncementViewController.xib
│ │ │ ├── AnnouncementViewController.swift
│ │ │ ├── AnnouncementViewController.xib
│ │ │ ├── Cell
│ │ │ │ └── AnnouncementCollectionViewCell.swift
│ │ │ └── Detail
│ │ │ ├── ATNAnnouncementDetailViewController.xib
│ │ │ ├── AnnouncementDetailViewController.swift
│ │ │ ├── AnnouncementDetailViewController.xib
│ │ │ └── View
│ │ │ └── AnnouncementDetailView.swift
│ │ ├── History
│ │ │ ├── ATNHistoryViewController.xib
│ │ │ ├── Cell
│ │ │ │ ├── CollectionHeaderView.swift
│ │ │ │ ├── CollectionHeaderView.xib
│ │ │ │ ├── HistoryCollectionViewCell.swift
│ │ │ │ ├── HistoryCollectionViewCell.xib
│ │ │ │ ├── HistoryTableViewCell.swift
│ │ │ │ └── HistoryTableViewCell.xib
│ │ │ ├── Detail
│ │ │ │ ├── Cell
│ │ │ │ │ ├── HistoryDetailCollectionViewCell.swift
│ │ │ │ │ ├── HistoryDetailCollectionViewCell.xib
│ │ │ │ │ ├── HistoryDetailFeeCell.swift (is deprecated in Aftee)
│ │ │ │ │ ├── HistoryDetailFeeCell.xib(is deprecated in Aftee)
│ │ │ │ │ ├── HistoryDetailFooterCell.swift(is deprecated in Aftee)
│ │ │ │ │ ├── HistoryDetailFooterCell.xib(is deprecated in Aftee)
│ │ │ │ │ ├── HistoryDetailSectionHeaderCell.swift(is deprecated in Aftee)
│ │ │ │ │ ├── HistoryDetailSectionHeaderCell.xib(is deprecated in Aftee)
│ │ │ │ │ ├── HistoryDetailTableViewCell.swift
│ │ │ │ │ └── HistoryDetailTableViewCell.xib
│ │ │ │ ├── HistoryDetailView.swift
│ │ │ │ ├── HistoryDetailViewController.swift
│ │ │ │ ├── HistoryDetailViewController.xib
│ │ │ │ └── Model
│ │ │ │ └── TransactionsModel.swift
│ │ │ ├── HistoryViewController.swift
│ │ │ ├── HistoryViewController.xib
│ │ │ ├── Model
│ │ │ │ ├── MePendingsModel.swift
│ │ │ │ └── MebillingsModel.swift
│ │ │ └── Receipt(is deprecated in Aftee)
│ │ │ ├── ATNHistoryReceiptViewController.xib
│ │ │ ├── HistoryReceiptViewController.swift
│ │ │ └── HistoryReceiptViewController.xib
│ │ ├── Menu
│ │ │ ├── CommonView
│ │ │ │ ├── Input
│ │ │ │ │ ├── MenuInputTextView.swift
│ │ │ │ │ ├── MenuSwitchView.swift
│ │ │ │ │ ├── PasscodeSwitchView.swift
│ │ │ │ │ └── TouchIDSwitchView.swift
│ │ │ │ └── Show
│ │ │ │ ├── MenuShowAddressView.swift
│ │ │ │ ├── MenuShowTextView.swift
│ │ │ │ └── MenuShowTitleView.swift
│ │ │ ├── MailNotification
│ │ │ │ ├── ATNMailNotificationViewController.xib
│ │ │ │ ├── MailNotificationViewController.swift
│ │ │ │ └── MailNotificationViewController.xib
│ │ │ ├── MemberInformation
│ │ │ │ ├── ATNMemberInformationViewController.xib
│ │ │ │ ├── Birth
│ │ │ │ │ ├── ChangeBirthViewController.swift
│ │ │ │ │ └── ChangeBirthViewController.xib
│ │ │ │ ├── DeliveryAddress
│ │ │ │ │ ├── ATNDeliveryAddressViewController.xib
│ │ │ │ │ ├── DeliveryAddressViewController.swift
│ │ │ │ │ ├── DeliveryAddressViewController.xib
│ │ │ │ │ ├── InputView(is deprecated in Aftee)
│ │ │ │ │ │ ├── InputPostCodeView.swift
│ │ │ │ │ │ └── SelectPrefectureView.swift
│ │ │ │ │ └── PickerView
│ │ │ │ │ └── DeliveryAddressPickerView.swift
│ │ │ │ ├── Gender
│ │ │ │ │ ├── ChangeGenderViewController.swift
│ │ │ │ │ └── ChangeGenderViewController.xib
│ │ │ │ ├── MailAddress
│ │ │ │ │ ├── ATNMailAddressViewController.xib
│ │ │ │ │ ├── MailAddressViewController.swift
│ │ │ │ │ └── MailAddressViewController.xib
│ │ │ │ ├── MemberInformationViewController.swift
│ │ │ │ ├── MemberInformationViewController.xib
│ │ │ │ ├── Name
│ │ │ │ │ ├── ATNNameViewController.xib
│ │ │ │ │ ├── NameViewController.swift
│ │ │ │ │ └── NameViewController.xib
│ │ │ │ └── Phone
│ │ │ │ ├── ChangePhoneNumberViewController.swift
│ │ │ │ └── ChangePhoneNumberViewController.xib
│ │ │ ├── Passcode
│ │ │ │ ├── ATNChangePasscodeViewController.xib
│ │ │ │ ├── ChangePasscodeViewController.swift
│ │ │ │ ├── ChangePasscodeViewController.xib
│ │ │ │ ├── SettingPasscodeViewController.swift
│ │ │ │ └── View
│ │ │ │ └── ChangePasscodeInputView.swift
│ │ │ ├── Password
│ │ │ │ ├── ATNPasswordViewController.xib
│ │ │ │ ├── PasswordViewController.swift
│ │ │ │ └── PasswordViewController.xib
│ │ │ ├── PrivacySetting
│ │ │ │ ├── PrivacySettingViewController.swift
│ │ │ │ └── PrivacySettingViewController.xib
│ │ │ ├── PushNotification
│ │ │ │ ├── ATNPushNotificationViewController.xib
│ │ │ │ ├── PushNotificationViewController.swift
│ │ │ │ └── PushNotificationViewController.xib
│ │ │ └── UsePoint
│ │ │ ├── UsePointViewController.swift
│ │ │ └── UsePointViewController.xib
│ │ ├── Summary
│ │ │ ├── ATNSummaryViewController.xib
│ │ │ ├── SummaryViewController.swift
│ │ │ ├── SummaryViewController.xib
│ │ │ └── View
│ │ │ ├── FirstSummaryView.swift (is deprecated in Aftee)
│ │ │ ├── SummaryAmountView.swift
│ │ │ └── SummaryGraphView.swift
│ │ └── payment
│ │ ├── ATMOrderInfoViewController.swift
│ │ ├── ATMOrderInfoViewController.xib
│ │ ├── BarCode
│ │ │ └── BarCode.swift
│ │ ├── Cell
│ │ │ ├── PaymentCollectionViewCell.swift
│ │ │ ├── PaymentCollectionViewCell.xib
│ │ │ ├── PaymentTableViewCell.swift
│ │ │ └── PaymentTableViewCell.xib
│ │ ├── ChooseATMViewController.swift
│ │ ├── ChooseATMViewController.xib
│ │ ├── ChooseSupermarketViewController.swift
│ │ ├── ChooseSupermarketViewController.xib
│ │ ├── Model
│ │ │ └── InvoiceModel.swift
│ │ ├── PaymentViewController.swift
│ │ ├── PaymentViewController.xib
│ │ ├── QROrderInfoViewController.swift
│ │ ├── QROrderInfoViewController.xib
│ │ ├── SupermarketOrderInfoViewController.swift
│ │ ├── SupermarketOrderInfoViewController.xib
│ │ └── View
│ │ ├── ChooseATMTableViewCell.swift
│ │ ├── ChooseATMTableViewCell.xib
│ │ ├── ChooseSupermarketTableViewCell.swift
│ │ └── ChooseSupermarketTableViewCell.xib
│ └── BeforeLogin
│ ├── Introduction(is deprecated in Aftee)
│ │ ├── ATNIntroductionViewController.xib
│ │ ├── IntroductionViewController.swift
│ │ ├── IntroductionViewController.xib
│ │ └── View
│ │ ├── Introduction01
│ │ │ └── Introduction01View.swift
│ │ ├── Introduction02
│ │ │ └── Introduction02View.swift
│ │ ├── Introduction03
│ │ │ └── Introduction03View.swift
│ │ ├── Introduction04
│ │ │ └── Introduction04View.swift
│ │ ├── Introduction05
│ │ │ └── Introduction05View.swift
│ │ └── Introduction06
│ │ └── Introduction06View.swift
│ ├── Login
│ │ ├── ATNLoginViewController.xib
│ │ ├── LoginViewController.swift
│ │ └── LoginViewController.xib
│ ├── Passcode
│ │ ├── ATNPasscodeViewController.xib
│ │ ├── PasscodeViewController.swift
│ │ ├── PasscodeViewController.xib
│ │ └── View
│ │ └── PasscodeInputView.swift
│ ├── Register
│ │ ├── FacebookLoginViewController.swift
│ │ ├── FacebookLoginViewController.xib
│ │ ├── InputUserInfoViewController.swift
│ │ ├── InputUserInfoViewController.xib
│ │ ├── PhoneInputViewController.swift
│ │ ├── PhoneInputViewController.xib
│ │ ├── VerificationCodeInputViewController.swift
│ │ └── VerificationCodeInputViewController.xib
│ └── Start
│ ├── ATNStartViewController.xib
│ ├── StartViewController.swift
│ ├── StartViewController.xib
│ └── View
│ └── StartCoverView.swift
├── CommonComponent
│ ├── Button
│ │ └── GenericButton.swift
│ └── UIView
│ └── ImageView
│ └── AsyncImageView.swift
├── CommonModule
│ └── MenuView
│ ├── Cell
│ │ └── MenuTableViewCell.swift
│ ├── MenuView.swift
│ └── View
│ ├── MenuFooterView.swift
│ ├── MenuHeaderView.swift
│ └── MenuSectionHeaderView.swift
└── PopUp
└── CustomAlert
├── CustomAlertView.swift
├── CustomConfirmAlertView.swift
└── Step005 (is deprecated in Aftee)
└── Step005View.swift
90 directories, 219 files
推送
项目关于推送模块从之前的 GCM 换成了 FCM,GoogleTagManager 也就升级为了 7.0
关于 FCM 的配置,plist 文件在 Supporting Files 里面。在 setupThirdParty 里面对 FCM 进行了注册。
当收到推送消息过后,都统一在 NotificationManager 进行了处理,进行跳转等操作。
交易
交易历史数据部分:数据是客户端在拿到了数据过后手动进行了分层、排序(拿到字典的key进行了排序,没有使用sorted(by: <#T##((key: Int, value: [String]), (key: Int, value: [String])) throws -> Bool#>
直接对字典进行排序))处理。
交易历史显示部分:同时创建了一个 tableView
和一个 CollectionView
,根据需要选择显示哪个 View。
交易历史 Click:点击的时候是 modal
出来一个带导航控制器的 Controller
,这里的做法是和通知模块保持了一致。
交易详细:详细部分用了一个 TableView
来展示,对于头部和底部在需要的时候更改了一下约束,达到展示的效果。
支付
支付数据部分:支付部分请求的数据和交易历史部分 Billing
是一样的,只是多了一层筛选。
支付展示部分:同时创建了一个 tableView
和一个 CollectionView
,根据需要选择显示哪个 View。
支付item Click:当点击的时候重新计算价格,并对价格进行格式化处理然后展示。
进行支付 Click:Alert 出来选择器,供用户选择,然后将参数进行传递。
摘要
摘要模块数据是直接在本地读取,每次进入界面的时候就重新刷新数据,重绘界面。
当可用余额低于 10000 的时候就不显示 “可用餘額”
支付场景选择
在点击过后就会做网络请求,这时候为了防止用户连续做多次请求,就设置了一个 Bool
值来判断是否正在请求当中。
订单详情
条形码是手动生成,界面是使用了 ScrollView
,需要手动去计算一次 ContentSize
。
個人基本資訊
部分界面使用的是纯代码布局,对于部分方法使用了默认参数,在使用的时候注意默认参数。
配置说明
GoogleService-Info-jd.plist
是 jp.co.netprotections.atone-app-dev-3 push
使用
GoogleService-Info-DEV.plist
是 tw.netprotections.aftee-app-dev-3 push
使用
GoogleService-Info-RELEASE.plist
是 tw.netprotections.aftee-app push
使用
1670315606384431
FacebookAppID
jp.co.netprotections.atone-app-dev-3
老版本Dev模式 Bundle ID
tw.netprotections.aftee-app-dev-3
DEV模式 Bundle ID
tw.netprotections.aftee-app
RELEASE模式 Bundle ID
项目注意点
- API 请求的时候需要配置认证信息,配置在
HTTPRequestOperationManager
中。部分接口的认证不同需单独配置调用setMockAuthorizationHeader
方法。 Repro
、Analytics
、Fabric
均保持了上个版本的原貌,未做任何变动。
可能遗留的问题
設定推播通知:如果启用 Repro
的时候可能会出现上传信息不正确。
Analytics
、Fabric
可能需要重新配置,目前是和安卓保持一致没有动以前的代码以及配置信息。
项目目前情况
- Version:1.0.2
- Build:1.0.3
- 在 8月7号的时候已经上传了版本到 itunesconnect , 在 8月9号已经给客户发了一个 STG 的包。
- 在 8月9号 发现 設定推播通知 中
type
未作出对应,做了相应的更改反馈给客户。 - 客户所给账号:
id :myuan@netprotections.co.jp pass :Netprotections123