Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ä¢¹½½Ö App µÄ×é¼þ»¯Ö®Â·
 
  2658  次浏览      27
 2018-4-3
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ¼òÊé,¡¸×é¼þ»¯¡¹ÊÇ App ÅòÕ͵½Ò»¶¨Ìå»ýºóµÄ½â¾ö·½°¸£¬ÄÜÒ»¶¨³Ì¶ÈÉϽâ¾öÎÊÌ⣬ÔÚÌá¸ß¿ª·¢Ð§ÂʵĹý³ÌÖУ¬²É¿ÓÊÇÄÑÃâµÄ£¬Ï£ÍûÕâÆªÎÄÕÂÄܹ»´øÀ´Ð©°ïÖú¡£

ÔÚ×é¼þ»¯Ö®Ç°£¬Ä¢¹½½Ö App µÄ´úÂë¶¼ÊÇÔÚÒ»¸ö¹¤³ÌÀ↑·¢µÄ£¬ÔÚÈ˱ȽÏÉÙ£¬ÒµÎñ·¢Õ¹²»ÊǺܿìµÄʱºò£¬ÕâÑùÊDZȽϺÏÊʵģ¬ÄÜÒ»¶¨³Ì¶ÈµØ±£Ö¤¿ª·¢Ð§ÂÊ¡£

ÂýÂýµØ´úÂëÁ¿¶àÁËÆðÀ´£¬¿ª·¢ÈËÔ±Ò²¶àÁËÆðÀ´£¬ÒµÎñ·¢Õ¹Ò²¿ìÁËÆðÀ´£¬Õâʱµ¥Ò»¹¤³Ì¿ª·¢Ä£Ê½¾Í»áÏÔ¶³öһЩ±×¶Ë£º

1.ñîºÏ±È½ÏÑÏÖØ£¨ÒòΪûÓÐÃ÷È·µÄÔ¼Êø£¬¡¸×é¼þ¡¹¼äÒýÓõÄÏÖÏó»á±È½Ï¶à£©£»

2.ÈÝÒ׳öÏÖ³åÍ»£¨ÓÈÆäÊÇʹÓà Xib£¬»¹ÓоÍÊÇ Xcode Project£¬Ëä˵Óнű¾¿ÉÒÔ¸ÄÉÆ£©£»

3.ÒµÎñ·½µÄ¿ª·¢Ð§Âʲ»¹»¸ß£¨Ö»¹ØÐÄ×Ô¼ºµÄ×é¼þ£¬È´Òª±àÒëÕû¸öÏîÄ¿£¬ÓëÆäËû²»Ïà¸ÉµÄ´úÂëôÛºÏÔÚÒ»Æð£©¡£

ΪÁ˽â¾öÕâЩÎÊÌ⣬¾Í²ÉÈ¡ÁË¡¸×é¼þ»¯¡¹²ßÂÔ¡£ËüÄÜ´øÀ´ÕâЩºÃ´¦£º

1.¼Ó¿ì±àÒëËÙ¶È£¨²»ÓñàÒëÖ÷¿ÍÄÇÒ»´óÛç´úÂëÁË£©£»

2.×ÔÓÉÑ¡Ôñ¿ª·¢×ËÊÆ£¨MVC / MVVM / FRP£©£»

3.·½±ã QA ÓÐÕë¶ÔÐԵزâÊÔ£»

4.Ìá¸ßÒµÎñ¿ª·¢Ð§ÂÊ¡£

ÏÈÀ´¿´Ï£¬×é¼þ»¯Ö®ºóµÄÒ»¸ö´ó¸Å¼Ü¹¹£º

¡¸×é¼þ»¯¡¹¹ËÃû˼Òå¾ÍÊǰÑÒ»¸ö´óµÄ App ²ð³ÉÒ»¸ö¸öСµÄ×é¼þ£¬Ï໥֮¼ä²»Ö±½ÓÒýÓá£ÄÇÈçºÎ×öÄØ£¿

ʵÏÖ·½Ê½

×é¼þ¼äͨÐÅ

ÒÔ iOS ΪÀý£¬ÓÉÓÚ֮ǰ¾ÍÊDzÉÓÃµÄ URL Ìø×ªÄ£Ê½£¬ÀíÂÛÉÏÒ³ÃæÖ®¼äµÄÌø×ªÖ»Ðè open Ò»¸ö URL ¼´¿É¡£ËùÒÔ¶ÔÓÚÒ»¸ö×é¼þÀ´Ëµ£¬Ö»Òª¶¨Ò塸֧³ÖÄÄЩ URL¡¹¼´¿É£¬±ÈÈçÏêÇéÒ³£¬´ó¸Å¿ÉÒÔÕâô×öµÄ£º

[MGJRouter registerURLPattern:@"mgj://detail?id=:id" toHandler:^(NSDictionary *routerParameters) {
NSNumber *id = routerParameters[@"id"];
// create view controller with id
// push view controller
}];

Ê×Ò³Ö»Ðèµ÷Óà [MGJRouter openURL:@"mgj://detail?id=404"] ¾Í¿ÉÒÔ´ò¿ªÏàÓ¦µÄÏêÇéÒ³¡£

ÄÇÎÊÌâÓÖÀ´ÁË£¬ÎÒÔõô֪µÀÓÐÄÄЩ¿ÉÓÃµÄ URL£¿Îª´Ë£¬ÎÒÃÇ×öÁËÒ»¸öºǫ́רÃÅÀ´¹ÜÀí¡£

È»ºó¿ÉÒÔ°ÑÕâЩ¶ÌÁ´Éú³É²»Í¬Æ½Ì¨ËùÐèµÄÎļþ£¬iOS ƽ̨Éú³É .{h,m} Îļþ£¬Android ƽ̨Éú³É .java Îļþ£¬²¢×¢Èëµ½ÏîÄ¿ÖС£ÕâÑù¿ª·¢ÈËÔ±Ö»ÐèÔÚÏîÄ¿Öдò¿ª¸ÃÎļþ¾ÍÖªµÀËùÓеĿÉÓà URL ÁË¡£

Ŀǰ»¹ÓÐÒ»¿éûÓÐ×ö£¬¾ÍÊDzÎÊýÕâ¿é£¬ËäÈ»ÃèÊöÁ˶ÌÁ´£¬µ«ÕæÏëÒªÉú³ÉÍêÕûµÄ URL£¬»¹ÐèÒªÖªµÀÈçºÎ´«²ÎÊý£¬Õâ¸öÕýÔÚ¿ª·¢ÖС£

»¹ÓÐÒ»ÖÖÇé¿ö»áÉÔ΢Âé·³µã£¬¾ÍÊÇ¡¸×é¼þA¡¹Òªµ÷Óá¸×é¼þB¡¹µÄij¸ö·½·¨£¬±ÈÈçÔÚÉÌÆ·ÏêÇéҳҪչʾ¹ºÎï³µµÄÉÌÆ·ÊýÁ¿£¬¾ÍÉæ¼°µ½Ïò¹ºÎï³µ×é¼þÄÃÊý¾Ý¡£

ÀàËÆÕâÖÖͬ²½µ÷Óã¬iOS ֮ǰ²ÉÓÃÁ˱Ƚϼòµ¥µÄ·½°¸£¬»¹ÊÇÒÀÍÐÓÚ MGJRouter£¬²»¹ýÌí¼ÓÁËÐµķ½·¨ - (id)objectForURL:£¬×¢²áʱҲʹÓÃÐµķ½·¨½øÐÐ×¢²á£º

[MGJRouter registerURLPattern:@"mgj://cart/ordercount" toObjectHandler:^id(NSDictionary *routerParamters){
// do some calculation
return @42;
}]

ʹÓÃʱ NSNumber *orderCount = [MGJRouter objectForURL:@"mgj://cart/ordercount"]ÕâÑù¾ÍÄõ½Á˹ºÎï³µÀïµÄÉÌÆ·Êý¡£

ÉÔ΢¸´ÔÓµ«¸ü¾ßͨÓÃÐԵķ½·¨ÊÇʹÓá¸Ð­Ò项 <-> ¡¸Àࡹ°ó¶¨µÄ·½Ê½£¬»¹ÊÇÒÔ¹ºÎﳵΪÀý£¬¹ºÎï³µ×é¼þ¿ÉÒÔÌṩÕâô¸ö Protocol:

@protocol MGJCart <NSObject>
+ (NSInteger)orderCount;
@end

¿ÉÒÔ¿´µ½Í¨¹ýЭÒé¿ÉÒÔÖ±½ÓÖ¸¶¨·µ»ØµÄÊý¾ÝÀàÐÍ¡£È»ºóÔÚ¹ºÎï³µ×é¼þÄÚÔÙн¨¸öÀàʵÏÖÕâ¸öЭÒ飬¼ÙÉèÕâ¸öÀàÃûΪMGJCartImpl£¬½ÓמͿÉÒÔ°ÑËüÓëЭÒ鹨ÁªÆðÀ´[ModuleManager registerClass:MGJCartImpl forProtocol:@protocol(MGJCart)]£¬¶ÔÓÚʹÓ÷½À´Ëµ£¬ÒªÄõ½Õâ¸öMGJCartImpl£¬ÐèÒªµ÷ÓÃ[ModuleManager classForProtocol:@protocol(MGJCart)]¡£Äõ½Ö®ºóÔÙµ÷Óà + (NSInteger)orderCount¾Í¿ÉÒÔÁË¡£

ÄÇô£¬Õâ¸öЭÒé·ÅÔÚÄÄÀï±È½ÏºÏÊÊÄØ£¿Èç¹û¸ú×é¼þ·ÅÔÚÒ»Æð£¬Ê¹ÓÃʱ»¹ÊÇÒªÏÈÒýÈë×é¼þ£¬Èç¹ûÓжà¸öÕâÑùµÄ×é¼þ¾Í»á±È½ÏÂé·³ÁË¡£ËùÒÔÎÒÃǰÑÕâЩ¹«¹²µÄЭÒéͳһ·Åµ½ÁË PublicProtocolDomain.hÏ£¬µ½Ê±Ö»ÒÀÀµÕâÒ»¸öÎļþ¾Í¿ÉÒÔÁË¡£

Android Ò²ÊDzÉÓÃÀàËÆµÄ·½Ê½¡£

×é¼þÉúÃüÖÜÆÚ¹ÜÀí

ÀíÏëÖеÄ×é¼þ¿ÉÒԺܷ½±ãµØ¼¯³Éµ½Ö÷¿ÍÖУ¬²¢ÇÒÓиú AppDelegateÒ»ÖµĻص÷·½·¨¡£ÕâÒ²ÊÇ ModuleManager×öµÄÊÂÇé¡£

ÏÈÀ´¿´¿´ÏÖÔÚµÄÈë¿Ú·½·¨£º

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[MGJApp startApp];
[[ModuleManager sharedInstance] loadModuleFromPlist:[[NSBundle mainBundle] pathForResource:@"modules" ofType:@"plist"]];
NSArray *modules = [[ModuleManager sharedInstance] allModules];
for (id<ModuleProtocol> module in modules) {
if ([module respondsToSelector:_cmd]) {
[module application:application didFinishLaunchingWithOptions:launchOptions];
}
}
[self trackLaunchTime];
return YES;
}

ÆäÖÐ [MGJApp startApp]Ö÷Òª¸ºÔðһЩ SDK µÄ³õʼ»¯¡£[self trackLaunchTime]ÊÇÎÒÃÇ´òµÄÒ»¸öµã£¬ÓÃÀ´¼à²â´Ó main·½·¨¿ªÊ¼µ½Èë¿Ú·½·¨µ÷ÓýáÊø»¨Á˶೤ʱ¼ä¡£ÆäËûµÄ¶¼ÓÉ ModuleManager¸ã¶¨£¬loadModuleFromPlist:pathForResource:·½·¨»á¶ÁÈ¡ bundle ÀïµÄÒ»¸ö plist Îļþ£¬Õâ¸öÎļþµÄÄÚÈÝ´ó¸ÅÊÇÕâÑùµÄ£º

ÿ¸öModule¶¼ÊµÏÖÁËModuleProtocol£¬ÆäÖÐÓÐÒ»¸ö-(BOOL)applicaiton:didFinishLaunchingWithOptions:·½·¨£¬Èç¹ûʵÏÖÁ˵ϰ£¬¾Í»á±»µ÷Óá£

»¹ÓÐÒ»¸öÎÊÌâ¾ÍÊÇ£¬ÏµÍ³µÄһЩʼþ»áÓÐ֪ͨ£¬±ÈÈç applicationDidBecomeActive»áÓжÔÓ¦µÄUIApplicationDidBecomeActiveNotification£¬×é¼þÈç¹ûÒª×öÏìÓ¦µÄ»°£¬Ö»Ðè¼àÌýÕâ¸öϵͳ֪ͨ¼´¿É¡£µ«Ò²ÓÐһЩʼþÊÇûÓÐ֪ͨµÄ£¬±ÈÈç - application:didRegisterUserNotificationSettings:£¬Õâʱ×é¼þÈç¹ûÒ²Òª×öµãÊÂÇ飬Ôõô°ì£¿

Ò»¸ö¼òµ¥µÄ½â¾ö·½·¨ÊÇÔÚAppDelegateµÄ¸÷¸ö·½·¨ÀÊÖ¶¯µ÷Ò»±é×é¼þµÄ¶ÔÓ¦µÄ·½·¨£¬Èç¹ûÓоÍÖ´ÐС£

(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWith

DeviceToken:(NSData *)deviceToken
{
NSArray *modules = [[ModuleManager

sharedInstance] allModules];
for (id<ModuleProtocol> module in modules)

{
if ([module respondsToSelector:_cmd]) {
[module application:application didRegisterForRemoteNotificationsWith

DeviceToken:deviceToken];
}
}
}

¿Ç¹¤³Ì

¼ÈÈ»ÒѾ­²ð³öÈ¥ÁË£¬ÄDzð³öÈ¥µÄ×é¼þ×ܵÃÓиöÔØÌ壬Õâ¸öÔØÌå¾ÍÊǿǹ¤³Ì£¬¿Ç¹¤³ÌÖ÷Òª°üº¬Ò»Ð©»ù´¡×é¼þºÍÒµÎñSDK£¬ÕâÒ²ÊÇÖ÷¹¤³Ì°üº¬µÄһЩÄÚÈÝ£¬ËùÒÔÈç¹ûÔڿǹ¤³Ì¿ÉÒÔÕý³£ÔËÐеϰ£¬µ½ÁËÖ÷¹¤³ÌҲûʲôÎÊÌâ¡£²»¹ýÕâÀï´æÔڰ汾ͬ²½ÎÊÌ⣬֮ºó»á˵µ½¡£

Óöµ½µÄÎÊÌâ

×é¼þ²ð·Ö

ÓÉÓÚ֮ǰµÄ´úÂë¶¼ÊÇÔÚÒ»¸ö¹¤³Ìϵģ¬ËùÒÔÒªµ¥¶ÀÄóöÀ´×÷Ϊһ¸ö×é¼þ¾Í»áÓöµ½²»ÉÙÎÊÌâ¡£Ê×ÏÈÊÇ×é¼þµÄ»®·Ö£¬µ±Ê±ÔÚ¶¨Òå×é¼þÁ£¶ÈʱҲ»¨ÁËЩʱ¼äÌÖÂÛ£¬¾¿¾¹ÊÇÁ£¶È´ÖµãºÃ£¬»¹ÊÇϸµãºÃ¡£´ÖµãµÄ»°±È½ÏÓÐÀûÓÚ²ð·Ö£¬Ï¸µãµÄ»°Áé»î¶È±È½Ï¸ß¡£×îÖÕ»¹ÊÇÑ¡Ôñ´ÖÒ»µãµÄÁ£¶È£¬ÏȲð³öÀ´ÔÙ˵¡£

¼ÙÈçÒª°ÑÏêÇéҳǨ³öÀ´£¬¾Í»á·¢ÏÖËüÒÀÀµÁËһЩÆäËû²¿·ÖµÄ´úÂ룬ÄÇ×î¿ìµÄ·½Ê½¾ÍÊÇÖ±½Ó°Ñ´úÂ뿽¹ýÀ´£¬¸Ä¸öÃûʹÓᣱȽϼòµ¥±©Á¦¡£ËµÆðÀ´±È½Ï¼òµ¥£¬×öµÄʱºòÒ²ÊÇͦÓÐÌôÕ½µÄ£¬ÒòΪÕý³£µÄÒµÎñ²¢²»»áÒòΪ¡¸×é¼þ»¯¡¹¶øÍ£Ö¹£¬ËùÒÔ¿ª·¢Í¬Ñ§ÃÇÐèҪͬʱ¼æ¹ËÕý³£µÄÒµÎñºÍ×é¼þµÄ²ð·Ö¡£

°æ±¾¹ÜÀí

ÎÒÃǵÄ×é¼þ°üÀ¨µÚÈý·½¿â¶¼ÊÇͨ¹ý Cocoapods À´¹ÜÀíµÄ£¬ÆäÖÐ×é¼þʹÓÃÁË˽Óп⡣֮ËùÒÔÑ¡Ôñ Cocoapods£¬Ò»¸öÊÇÒòΪËü±È½Ï·½±ã£¬»¹ÓоÍÊÇÓû§»ùÊý±È½Ï´ó£¬ÇÒÉçÇøÒ²±È½Ï»îÔ¾£¨»îÔ¾µ½ÁË»áʱ²»Ê±µØ´¥·¢ Github µÄ rate limit£¬µ¼Ö³¤Ê±¼ä clone ²»ÏÂÀ´¡¤¡¤¡¤ ¼û´Ë£©£¬µ±È»Ò²ÓÐÆäËûµÄ¹ÜÀí·½Ê½£¬±ÈÈç submodule / subtree£¬ÔÚ¿ª·¢ÈËÔ±±È½Ï¶àµÄÇé¿öÏ£¬·½±ã¡¢Áé»îµÄ·½°¸ÈÝÒ×Õ¼ÉϷ磬ËäÈ»ËüÒ²ÓÐ×Ô¼ºµÄÎÊÌâ¡£Ö÷ÒªÓа汾ͬ²½ºÍ¸üÐÂ/±àÒëÂýµÄÎÊÌâ¡£

¼ÙÈç»ù´¡×é¼þ×öÁ˸ö API ½Ó¿ÚÉý¼¶£¬Õâ¸öÉý¼¶»á¶ÔÔ­ÓеĽӿÚ×ö¸Ä¶¯£¬×ÔÈ»¾Í»áÉýÒ»¸öÖÐλµÄ°æ±¾ºÅ£¬±ÈÈçÔ­ÏÈÊÇ 1.6.19£¬ÄÇôÏÖÔھͱä³É 1.7.0 ÁË¡£¶øÎÒÃÇÔÚ Podfile Àï¶¼ÊÇÓà ~

Ö¸¶¨µÄ£¬ÕâÑù¾Í»á³öÏÖÖ÷¹¤³ÌµÄ pod °æ±¾ÉýÉÏÈ¥ÁË£¬µ«Êǿǹ¤³ÌûÓÐͬ²½µ½£¬È»ºóȺÀï¾Í»á¸÷ÖÖ·´À¡±àÒë²»¹ý£¬¶øÇÒÕâ¸ö±àÒë²»¹ýµÄ³¤Î²ÓÐʱÄÜÍÏÉÏÁ½ÈýÌì¡£

È»ºóÎÒÃǾÍÏëÁ˸ö°ì·¨£¬Èç¹û²»Ôڿǹ¤³ÌÀïÖ¸¶¨»ù´¡¿âµÄ°æ±¾£¬Ö»ÔÚÖ÷¹¤³ÌÀïÖ¸¶¨ÄØ£¬ÀíÂÛÉÏÓ¦¸Ã¿ÉÐУ¬Ö»Òª²»³öÏÖij¸ö»ù´¡¿âҪͬʱά»¤¶à¸ö°æ±¾µÄÇé¿ö¡£µ«Êµ¼ùÖз¢ÏÖ£¬¿Ç¹¤³ÌÓÐʱ»áĪÃûÆäÃîµØÉý²»ÉÏÈ¥£¬ÔÚ podfile ÀïÖ¸¶¨×îеİ汾ÓÖ¿ÉÒÔÉýÉÏÈ¥£¬ËùÒÔ´Ë·²»Í¨¡£

»¹ÓÐÒ»¸öÎÊÌâÊÇpod updateʱ¼ä¹ý³¤£¬¾­³£»áÔÚAnalyzing DependencyÉÏ¿¨ 10 ¶à·ÖÖÓ£¬·Ç³£Ó°ÏìЧÂÊ¡£ºóÀ´ÅŲéÏÂÀ´ÊǸú×é¼þµÄ Podspec Óйأ¬ÅäÖÃÁË subspec£¬ÇÒÒÀÀµ±È½Ï¶à¡£

È»ºó¾ÍÊÇ pod update Ö®ºóµÄ±àÒ룬ÓÉÓÚÊÇÔ´Âë±àÒ룬ËùÒÔÕâ¿éµÄʱ¼ä»¨·ÑÒ²²»ÉÙ£¬½ÓÏÂÈ¥»á¿¼ÂÇ framework µÄ·½Ê½¡£

³ÖÐø¼¯³É

ÔÚ¸Õ¿ªÊ¼£¬³ÖÐø¼¯³É»¹²»ÊǺÜÍêÉÆ£¬ÒµÎñ·½Éý¼¶×é¼þ£¬Ö±½Ó°Ñ podspec ÈÓµ½ private repo Àï¾ÍÍêÊÂÁË¡£ÕâÑù×î¼òµ¥£¬µ«Ò²¾­³£»á´øÀ´±àÒëͨ²»¹ýµÄÎÊÌâ¡£¶øÇÒÕâÖÖËæÒâµÄ°æ±¾Éý¼¶Ò²²»Ì«Äܱ£Ö¤ÖÊÁ¿¡£ÓÚÊÇÎÒÃǾʹÁËÒ»Ì׳ÖÐø¼¯³Éϵͳ£¬´ó¸ÅÈç´Ë£º

ÿ¸ö×é¼þÉý¼¶Ö®Ç°¶¼ÐèÒªÏÈͨ¹ý±àÒ룬ȻºóÔÙ¾ö¶¨ÊÇ·ñÉý¼¶¡£ÕâÌ×Ìåϵ¿´ÆðÀ´²»¸´ÔÓ£¬µ«ÔÚʵʩ¹ý³ÌÖо­³£»áÓöµ½ºó¶ËµÄ²¢·¢ÎÊÌ⣬µ¼ÖÂÒµÎñ·½ÒªÃ´¼¯³Éʧ°Ü£¬ÒªÃ´ÒªµÈ²»ÉÙʱ¼ä¡£¶øÇÒҲûÓÐÒ»¸öµØ·½¿ÉÒÔ³ÊÏÖµ±Ç°°æ±¾µÄ×é¼þ°æ±¾ÐÅÏ¢¡£»¹ÓоÍÊÇÒµÎñ·½¶ÔÓÚÕâÖÖÃüÁîÐеÄÉý¼¶·½Ê½½ÓÊܶÈÒ²²»ÊǺܸߡ£

»ùÓÚ´Ë£¬ÔÚ¾­¹ýÁ˼¸ÂÖÌÖÂÛÖ®ºó£¬ÓÐÁËаæµÄ³ÖÐø¼¯³Éƽ̨£¬Éý¼¶²Ù×÷ͨ¹ýÍøÒ³¶ËÀ´Íê³É¡£

´óÖÂ˼·ÊÇ£¬ÒµÎñ·½Èç¹ûÒªÉý¼¶×é¼þ£¬¼ÙÉèÏÖÔڵİ汾ÊÇ 0.1.7£¬Ìí¼ÓÁËһЩ feature Ö®ºó£¬¿Ç¹¤³Ì²âÊÔͨ¹ý£¬Ï뼯³Éµ½Ö÷¹¤³ÌÀï¿´¿´Ð§¹û£¬»òÕ߯äËû×é¼þÒ²ÏëÒýÓÃÕâ¸ö×îÐµģ¬¾Í¿ÉÒÔÔÚºǫ́ÊÖ¶¯°Ñ°æ±¾Éýµ½ 0.1.8-rc.1£¬ÕâÑùµÄ»°£¬Ô­ÏÈÒÀÀµ~> 0.1.7µÄ×é¼þ£¬²»»áÉýµ½ 0.1.8£¬Í¬Ê±ÏëÒª²âÊÔÕâ¸ö×é¼þµÄ»°£¬Ö»ÒªÊÖ¶¯°Ñ°æ±¾µ÷µ½ 0.1.8-rc.1 ¾Í¿ÉÒÔÁË¡£Õâ¸ö¹ý³Ì²»»á´¥·¢ CI µÄ±àÒë¼ì²é¡£

µ±²âÊÔͨ¹ýºó£¬¾Í¿ÉÒÔ°Ñβ²¿µÄ-rc.nÈ¥µô£¬È»ºóµã»÷¡¸¼¯³É¡¹£¬¾Í»á×ß CI ±àÒë¼ì²é£¬Í¨¹ýµÄ»°£¬»áÔÚÖ÷¹¤³ÌµÄ podfile ÀïдÉϹ̶¨µÄ°æ±¾ºÅ 0.1.8¡£Ò²¾ÍÊÇ˵£¬podfile ÀïËùÓеÄ×é¼þ°æ±¾ºÅ¶¼Êǹ̶¨µÄ¡£

ÖܱßÉèÊ©

»ù´¡×é¼þ¼°×é¼þµÄÎĵµ / Demo / µ¥Ôª²âÊÔ

ÎÞÏß»ù´¡µÄÖ°ÄÜÊÇΪ¼¯ÍÅÌṩ½â¾ö·½°¸£¬Ö»ÊÇÔÚÄ¢¹½½Ö App ÀïÄÜ work ÊÇÔ¶Ô¶²»¹»µÄ£¬ËùÒÔ¾ÍÐèÒªÌṩÈë¿Ú£¬ÖªµÀÓÐÄÄЩ¿ÉÓÃ×é¼þ£¬²¢ÇÒÈçºÎʹÓ㬾ÍÏñÕâÑù£¨Ä¿Ç°»¹Î´ÊµÏÖ£©

Õâ¾ÍÒªÇó×é¼þµÄ¸ºÔðÈËÐèÒª¼°Ê±µØ¸üРREADME / CHANGELOG / API£¬²¢ÇÒµ±·¢Éú API ±ä¸üʱ£¬Äܹ»¿ìËÙ֪ͨµ½Ê¹Ó÷½¡£

¹«¹² UI ×é¼þ

×é¼þ»¯Ö®ºó»¹ÓÐÒ»¸öÎÊÌâ¾ÍÊÇ×ÊÔ´µÄÖØ¸´ÐÔ£¬ÒÔǰÔÚÒ»¸ö¹¤³ÌÀïµÄʱºò£¬×ÊÔ´¶¼¿ÉÒԺܷ½±ãµØÄõ½£¬ÏÖÔÚ¶ÀÁ¢³öÈ¥ÁË£¬Ò²²»ÖªµÀÄÄЩÊǹ«Óõģ¬ÄÄЩÊǶÀÓеģ¬Ë÷ÐÔ¶¼·Åµ½×Ô¼ºµÄ×é¼þÀÕâÑù¾Í»áµ¼Ö°ü±ä´ó¡£»¹ÓÐÒ»¸öÎÊÌâÊÇÿ¸ö×é¼þ¿ÉÄÜÊDz»Í¬µÄ²úÆ·¾­ÀíÔÚ¸ú£¬¶øËûÃǺܿÉÄÜÖ»¹Ø×¢ÓÚ×Ô¼º¹ØÐĵÄÒ³Ãæ³¤Ê²Ã´Ñù£¬¶øºöÂÔÁËÕûÌåµÄÑùʽ¡£¹«¹² UI ×é¼þ¾ÍÊÇÓÃÀ´½â¾öÕâЩÎÊÌâµÄ£¬ÕâЩ×é¼þÉõÖÁ¿ÉÒÔ¿ç App ʹÓᣣ¨Ä¿Ç°»¹Î´ÊµÏÖ£©

 

 

   
2658 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì