SCC2017「両利きスマホアプリ開発のススメ」資料

Information about SCC2017「両利きスマホアプリ開発のススメ」資料

Published on July 31, 2017

Author: KenjiSakashita

Source: slideshare.net

Content

1. 1 3 51A8C5 31 ( - f l z g ) (. . )0

2. ) (. . )0 p y ” w os rtp) (. . )0 fl n ofi WBE 4 R_]WR y m flfi WBE 4 R_]WR z fl yfl y n fi fi fi n 4 R_]WR p OcO Vaa 1 UWaVbP ][ YW_]_b E66) (.NO R_]WRNXOcO 4 R_]WR p>]a W Vaa 1 UWaVbP ][ YW_]_b E66) (.NO R_]WRNY]a W WBE pBPXS aWcS 6 Vaa 1 UWaVbP ][ YW_]_b E66) (.NW] N]PX WBE pEdWTa Vaa 1 UWaVbP ][ YW_]_b E66) (.NW] N dWTa E4CCBDB 6D84F H8 [email protected] ) (. (

3. ) (. . )0 z c flu zn o fi n fl z np 4 R_]WR fi fi nWBE fi n yuiv fi y fi y n 1SIVT I0 4 R_]WR EabRW] HS_ W] 1 ) p>]a W 0lJ ]RS / p6] ]OC]R E4CCBDB 6D84F H8 [email protected] ) (. )

4. ) (. . )0 1SIVT I d9 e JU z zn fi n (" 4 R_]WR EabRW] n )" IS ][S a] 4 R_]WR EabRW] fi hEaO_a O Sd 4 R_]WR EabRW] C_]XS ak n " ASd C_]XS a fi 4 W OaW] O[S 6][ O f R][OW C_]XS a ] OaW] n L ASea M " FO_USa 4 R_]WR 7ScW S fi fi n L ASea M ," 4RR O 4 aWcWaf a] @]PW S fi 8[ af 4 aWcWaf n L ASea M -" 6b a][WgS aVS 4 aWcWaf fi fi n L 9W W V M E4CCBDB 6D84F H8 [email protected] ) (.

5. ) (. . )0 JU ( z ( H ER S R z o n pO aWcWafN[OW e[ o z n o o n W C J W aHWSd n W aHWSd fi v “ yn z fi n 7 W aHWSd E4CCBDB 6D84F H8 [email protected] ) (.

6. ) (. . )0 ( ( HJ ER S R z x n o S N[OW e[ z o z n fi n o o n SJ V T MTV TS R LJC J Of]baNdWRaV / R ]_WS aOaW] V]_Wg] aO 7 W[OUSHWSd Of]baNdWRaV / R Of]baNVSWUVa / R E4CCBDB 6D84F H8 [email protected] ) (. ,

7. ) (. . )0 SJ V T JV H J C J J C J ( Of]baNdSWUVa ]_WS aOaW] cS_aW O 7 aSeaHWSd( aSeaEWgS ) aSea6] ]_ P O Y 7 aSeaHWSd) aSeaEWgS ) aSea6] ]_ RO_YS_NU_Of E4CCBDB 6D84F H8 [email protected] ) (. -

8. ) (. . )0 JU) z ) c z o aS[ @OW 4 aWcWaf o fl n ) ( c z o n class Item { String BASE_URL = "https://kiroru-inc.jp/share/scc2017/"; String imageUrl; String jname; String ename; public Item(String imageUrl, String jname, String ename) { this.imageUrl = BASE_URL + imageUrl; this.jname = jname; this.ename = ename; } } private List<Item> items = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); items.add(new Item("Japan.png", "日本", "Japan")); items.add(new Item("China.png", "中国", "China")); items.add(new Item("USA.png", "アメリカ", "America")); items.add(new Item("England.png", "イギリス", "England")); items.add(new Item("France.png", "フランス", "France")); : } E4CCBDB 6D84F H8 [email protected] ) (. .

9. ) (. . )0 ) ) c z o @f4RO aS_ @OW 4 aWcWaf o fl n ) C J 7T IJV z @f4RO aS_ o fl HWSd ] RS_ nHWSd ] RS_ o 4 R_]WR fi nHWSd ] RS_ o n class MyAdapter extends BaseAdapter { @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { return null; } } class ViewHolder { ImageView iv; TextView tv1; TextView tv2; } E4CCBDB 6D84F H8 [email protected] ) (. /

10. ) (. . )0 ) T 8S_ JV z Of]ba jOaS_ n HWSd ] RS_ n ) z o USaHWSd np n private ViewHolder holder; private LayoutInflater inflater; public MyAdapter(Context context) { super(); inflater = ((Activity)context).getLayoutInflater(); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.cell_main, null); holder = new ViewHolder(); holder.iv = (ImageView)convertView.findViewById(R.id.imageView); holder.tv1 = (TextView)convertView.findViewById(R.id.textView1); holder.tv2 = (TextView)convertView.findViewById(R.id.textView2); convertView.setTag(holder); } else { holder = (ViewHolder)convertView.getTag(); } Item item = items.get(position); holder.tv1.setText(item.jname); holder.tv2.setText(item.ename); return convertView;
 } E4CCBDB 6D84F H8 [email protected] ) (. 0

11. ) (. . )0 ) - 6 IJ z z p: WRS Vaa 1 UWaVbP ][ Pb[ aS V U WRS nPbW R U_OR S @]Rb S1 O " m Ef A]d n ) . z : WRS m o fi o m [OUSHWSd n ) / x cz m fl o n repositories { mavenCentral() // jcenter() works as well because it pulls from Maven Central } dependencies { compile 'com.github.bumptech.glide:glide:4.0.0-RC1' compile 'com.android.support:support-v4:25.3.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1' } Item item = items.get(position); Glide.with(MainActivity.this).load(item.imageUrl).into(holder.iv); holder.tv1.setText(item.jname); holder.tv2.setText(item.ename); @Override protected void onCreate(Bundle savedInstanceState) { : ListView lv = (ListView)findViewById(R.id.listView); lv.setAdapter(new MyAdapter(this)); } E4CCBDB 6D84F H8 [email protected] ) (. (

12. ) (. . )0 JU 1SIVT I S KJW R z AF8DA8F o zn JU a xm fifi fi n z fi n <?xml version="1.0" encoding="utf-8"?> : <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" : E4CCBDB 6D84F H8 [email protected] ) (. ((

13. ) (. . )0 d GOJH J 3 e JU z zn fi n (" J ]RS n )" IS ][S a] J ]RS fi h6_SOaS O Sd J ]RSk n " 6V]] S O aS[ OaS T]_ f]b_ Sd _]XS a1 fi EW U S HWSd 4 W OaW] n L ASea M " 6V]] S ] aW] T]_ f]b_ Sd _]XS a1 fi C_]Rb a AO[S m O UbOUS BPXS aWcS 6 n L ASea M ," fi n L 6_SOaS M E4CCBDB 6D84F H8 [email protected] ) (. ()

14. ) (. . )0 JU ( c c cflz ( C J 3TS VT JV z o o o [email protected] a]_fP]O_R fi HWSd6] a_] S_ n z o p z nHWSd6] a_] S_ z n E4CCBDB 6D84F H8 [email protected] ) (. (

15. ) (. . )0 B8A G JC J z n B8A G JC J 3J D]d SWUVa / RS aWiS_ @f6S E4CCBDB 6D84F H8 [email protected] ) (. (

16. ) (. . )0 B88R LJC J z n J K IWRaV / FOU ( 6] aS a @]RS 4 S a 9Wa E4CCBDB 6D84F H8 [email protected] ) (. (,

17. ) (. . )0 B8 GJ z n d GJ GJ (e J / K SWUVa FOU ) 9] a Ef aS[ ) 6] ]_ 5 O Y WUVa :_Of 6] ]_ E4CCBDB 6D84F H8 [email protected] ) (. (-

18. ) (. . )0 JU) z ) c z o aS[ n aS[ HWSd6] a_] S_ [ n @interface Item : NSObject @property (nonatomic, strong) NSString* imageUrl; @property (nonatomic, strong) NSString* jname; @property (nonatomic, strong) NSString* ename; - (instancetype)initWithImageUrl:(NSString*)imageUrl jname:(NSString*)jname ename:(NSString*)ename; @end @implementation Item static NSString* BASE_URL = @"https://kiroru-inc.jp/share/scc2017/"; - (instancetype)initWithImageUrl:(NSString *)imageUrl jname:(NSString *)jname ename:(NSString *)ename { self = [super init]; if (self) { self.imageUrl = [NSString stringWithFormat:@"%@%@", BASE_URL, imageUrl]; self.jname = jname; self.ename = ename; } return self; } @end E4CCBDB 6D84F H8 [email protected] ) (. (.

19. ) (. . )0 ) ( c z o n E4CCBDB 6D84F H8 [email protected] ) (. (/ @interface ViewController () @property (nonatomic, strong) NSMutableArray* items; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _items = [@[] mutableCopy]; [_items addObject:[[Item alloc] initWithImageUrl:@"Japan.png" jname:@"日本" ename:@"Japan"]]; [_items addObject:[[Item alloc] initWithImageUrl:@"China.png" jname:@"中国" ename:@"China"]]; [_items addObject:[[Item alloc] initWithImageUrl:@"USA.png" jname:@"アメリカ" ename:@"America"]]; [_items addObject:[[Item alloc] initWithImageUrl:@"England.png" jname:@"イギリス" ename:@"England"]]; [_items addObject:[[Item alloc] initWithImageUrl:@"France.png" jname:@"フランス" ename:@"France"]]; }

20. ) (. . )0 ) ) z G FOP SHWSd G FOP SHWSd7OaOE]b_ S G FOP SHWSd7S SUOaS n @interface ViewController () <UITableViewDataSource, UITableViewDelegate>   : @property (nonatomic, weak) IBOutlet UITableView* tableView; @end   : - (void)viewDidLoad { [super viewDidLoad];   : _tableView.dataSource = self; _tableView.delegate = self; }   : - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _items.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { return nil; } - (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 80.0; } E4CCBDB 6D84F H8 [email protected] ) (. (0

21. ) (. . )0 ) G JC J z 5Bba Sa fi aOP SHWSd [email protected] a]_f5]O_R fi n ) z aOP SHWSd1 S 9]_D]d4a RSeCOaV1 fi np n - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; Item* item = _items[indexPath.row]; UILabel* tv1 =[cell viewWithTag:2]; tv1.text = item.jname; UILabel* tv2 =[cell viewWithTag:3]; tv2.text = item.ename; return cell; } E4CCBDB 6D84F H8 [email protected] ) (. )

22. ) (. . )0 ) z fl x fifi n z fi n E4CCBDB 6D84F H8 [email protected] ) (. )(

23. ) (. . )0 ) - 4DJG8R LJ z z pE7ISP [OUS Vaa 1 UWaVbP ][ _ E7ISP [OUS n 6] ]OC]R Vaa 1 ] ]O ]R ]_U fi np6] ]OC]R fi y n m m fi o y “ yn m n 6] ]OC]R n C]R9W S flyz n C]R9W S “ yn $ ls SCC2017_ios_objc.xcodeproj SCC2017_ios_objc $ pod init $ ls Podfile SCC2017_ios_objc.xcodeproj SCC2017_ios_objc $ vi Podfile # Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'SCC2017_ios_objc' do # Uncomment the next line if you're using Swift or would like to use dynamic frameworks # use_frameworks! # Pods for SCC2017_ios_objc pod 'SDWebImage' # <-- この行を追加 end E4CCBDB 6D84F H8 [email protected] ) (. ))

24. ) (. . )0 m n m o o p E66) (.NW] N]PX e d]_Y O S n fi m o o n J ]RS m o o o n zn p - fl fi n $ pod install Analyzing dependencies Downloading dependencies Installing SDWebImage (3.7.5) Generating Pods project Integrating client project [!] Please close any current Xcode sessions and use `SCC2017_ios_objc.xcworkspace` for this project from now on. Sending stats Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed. [!] Automatically assigning platform ios with version 10.3 on target SCC2017_ios_objc because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/ podfile.html#platform`. $ ls Podfile SCC2017_ios_objc Podfile.lock SCC2017_ios_objc.xcodeproj Pods SCC2017_ios_objc.xcworkspace E4CCBDB 6D84F H8 [email protected] ) (. )

25. ) (. . )0 ) . z E7ISP [OUS o n #import <SDWebImage/UIImageView+WebCache.h>  : - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"MyCell"]; Item* item = _items[indexPath.row]; UIImageView* iv = [cell viewWithTag:1]; [iv sd_setImageWithURL:[NSURL URLWithString:item.imageUrl]]; UILabel* tv1 = [cell viewWithTag:2]; tv1.text = item.jname; UILabel* tv2 = [cell viewWithTag:3]; tv2.text = item.ename; return cell; } E4CCBDB 6D84F H8 [email protected] ) (. )

26. ) (. . )0 JU z xm fifi fi n z fi n E4CCBDB 6D84F H8 [email protected] ) (. ),

27. ) (. . )0 d K e JU z BPXS aWcS 6 fl fi n6V]] S ] aW] T]_ f]b_ Sd _]XS a1 fi O UbOUS BPXS aWcS 6 fi EdWTa “ yn JU ( c c cfl a BPXS aWcS 6 fl fi n E4CCBDB 6D84F H8 [email protected] ) (. )-

28. ) (. . )0 JU) a ) c z o aS[ HWSd6] a_] S_ o fl n ) ( c z o n class Item : NSObject { let BASE_URL = "https://kiroru-inc.jp/share/scc2017/" let imageUrl:String let jname:String let ename:String init(imageUrl:String, jname:String, ename:String) { self.imageUrl = BASE_URL + imageUrl self.jname = jname self.ename = ename } } var items:[Item] = [] override func viewDidLoad() { super.viewDidLoad() items.append( Item(imageUrl: "Japan.png", jname: "日本", ename: "Japan")) items.append( Item(imageUrl: "China.png", jname: "中国", ename: "China")) items.append( Item(imageUrl: "USA.png", jname: "アメリカ", ename: "America")) items.append( Item(imageUrl: "England.png", jname: "イギリス", ename: "England")) items.append( Item(imageUrl: "France.png", jname: "フランス", ename: "France")) } E4CCBDB 6D84F H8 [email protected] ) (. ).

29. ) (. . )0 ) ) z G FOP SHWSd G FOP SHWSd7OaOE]b_ S G FOP SHWSd7S SUOaS n ) G JC J z BPXS aWcS 6 fl fi n class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { : @IBOutlet var tableView:UITableView? = nil override func viewDidLoad() { super.viewDidLoad() tableView?.dataSource = self tableView?.delegate = self } : func numberOfSections(in tableView: UITableView) -> Int { return 1 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return items.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { return nil } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 80.0 } E4CCBDB 6D84F H8 [email protected] ) (. )/

30. ) (. . )0 ) y nr z aOP SHWSd1 S 9]_D]d4a RSeCOaV1 fi n fi y fim n ) z fl x fifi n z fi np BPXS aWcS 6 fl fi n func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell")! let item = items[indexPath.row] let tv1 = cell.viewWithTag(2) as! UILabel tv1.text = item.jname let tv2 = cell.viewWithTag(3) as! UILabel tv2.text = item.ename return cell } E4CCBDB 6D84F H8 [email protected] ) (. )0

31. ) (. . )0 ) - 4DJG8R LJ z BPXS aWcS 6 fl fi n ) . z E7ISP [OUS o n import SDWebImage  : func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "MyCell")! let item = items[indexPath.row] let iv = cell.viewWithTag(1) as! UIImageView iv.sd_setImage(with: URL(string: item.imageUrl)!) let tv1 = cell.viewWithTag(2) as! UILabel tv1.text = item.jname let tv2 = cell.viewWithTag(3) as! UILabel tv2.text = item.ename return cell } E4CCBDB 6D84F H8 [email protected] ) (.

32. ) (. . )0 JU a xm fifi fi n z fi np BPXS aWcS 6 fl fi n E4CCBDB 6D84F H8 [email protected] ) (. (

33. ) (. . )0 1SIVT I d:T S e JU p y 4 R_]WR OcO >]a W o fl n 4 R_]WR EabRW] fi m4 R_]WR EaORW] ) fi >]a W flfi z fl fi n fi 4 R_]WR EabRW] ) fi fix fl n JU z n OcO fl fi n m fi “ yn :T S z F]] 2 >]a W 2 6] iUb_S >]a W W C_]XS a PbW R U_OR S fim Ef A]d “ yn E4CCBDB 6D84F H8 [email protected] ) (. )

34. ) (. . )0 ( 1H z o j OcO m>]a W n O aWcWafN[OW e[ n m>]a W m y z y z “ yn ( 9W S 2 ASd 2 >]a W 4 aWcWaf ) 8[ af 4 aWcWaf LASeaM 6b a][WgS aVS 4 aWcWaf y 4 aWcWaf AO[S @OW 4 aWcWaf nUS S_OaS Of]ba 9W S nL 9W W V M @OW 4 aWcWaf Sa6] aS aHWSd n JU ( z OcO fl fi n class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } E4CCBDB 6D84F H8 [email protected] ) (.

35. ) (. . )0 JU) z ) c z o aS[ @OW 4 aWcWaf o fl n ) ( c z o n class Item(imageUrl:String, val jname:String, val ename:String) { val imageUrl = "https://kiroru-inc.jp/share/scc2017/" + imageUrl } var items = mutableListOf<Item>() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) items.add(Item("Japan.png", "日本", "Japan")) items.add(Item("China.png", "中国", "China")) items.add(Item("USA.png", "アメリカ", "America")) items.add(Item("England.png", "イギリス", "England")) items.add(Item("France.png", "フランス", "France")) } E4CCBDB 6D84F H8 [email protected] ) (.

36. ) (. . )0 ) ) c a o @f4RO aS_ @OW 4 aWcWaf o fl n ) C J 7T IJV a @f4RO aS_ o fl HWSd ] RS_ n ) T 8S_ JV a Of]ba jOaS_ n HWSd ] RS_ n class MyAdapter(val context: Context, val items:MutableList<Item>) : BaseAdapter() { override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { TODO("not implemented")
 } override fun getItem(position: Int): Any { return items[position] } override fun getItemId(position: Int): Long { return position.toLong() } override fun getCount(): Int { return items.size } } class ViewHolder(val iv: ImageView, val tv1: TextView, val tv2: TextView) {} var holder:ViewHolder? = null val inflater: LayoutInflater = (context as Activity).layoutInflater E4CCBDB 6D84F H8 [email protected] ) (. ,

37. ) (. . )0 ) z o USaHWSd np n ) - 6 IJ z OcO fl fi n ) . z : WRS m o fi o m [OUSHWSd n override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { var view:View if (convertView == null) { view = inflater.inflate(R.layout.cell_main, null) holder = ViewHolder( view.findViewById(R.id.imageView) as ImageView, view.findViewById(R.id.textView1) as TextView, view.findViewById(R.id.textView2) as TextView) view.tag = holder } else { view = convertView!! holder = view.tag as ViewHolder } val item = items[position] holder?.tv1?.text = item.jname holder?.tv2?.text = item.ename return view } val item = items[position] Glide.with(context).load(item.imageUrl).into(holder?.iv) holder?.tv1?.text = item.jname holder?.tv2?.text = item.ename E4CCBDB 6D84F H8 [email protected] ) (. -

38. ) (. . )0 ) / x o a @f4RO aS_ fl W aHWSd n JU 1SIVT I S KJW R a OcO fl fi n JU a xm fifi fi n z fi n override fun onCreate(savedInstanceState: Bundle?) { : val lv = findViewById(R.id.listView) as ListView lv.adapter = MyAdapter(this, items) } E4CCBDB 6D84F H8 [email protected] ) (. .

39. ) (. . )0 z c dszhe fi zn fi n fl z np 4 R_]WR fi fi nWBE fi n E4CCBDB 6D84F H8 [email protected] ) (. /

40. ) (. . )0 1SIVT I d9 e JU 1H z 4 aWcWaf zn fi n (" o 9W S 2 ASd 2 4 aWcWaf 2 8[ af 4 aWcWaf n )" 6] iUb_S 4 aWcWaf fi 4 aWcWaf AO[S 7SaOW 4 aWcWaf n L9W W VM E4CCBDB 6D84F H8 [email protected] ) (. 0

41. ) (. . )0 JU ( z o n pO aWcWafNRSaOW e[ o z n fi n E4CCBDB 6D84F H8 [email protected] ) (.

42. ) (. . )0 R LJC J J C J J C J ( G TS fi z z 6] a_OW a “ yn 7 W[OUSHWSd Of]baNdWRaV (- R Of]baNVSWUVa (- R 7 aSeaHWSd( aSeaEWgS aSea6] ]_ 3O R_]WR1 ] ]_ P O Y aSea4 WU [S a 4 :AN68AF8D 7 aSeaHWSd) aSeaEWgS ) aSea6] ]_ 3O R_]WR1 ] ]_ RO_YS_NU_Of aSea4 WU [S a 4 :AN68AF8D 7 Pbaa] aSea E4CCBDB 6D84F H8 [email protected] ) (. (

43. ) (. . )0 JU ) z JU ) 4J 1H O z fi n @OW 4 aWcWaf aS a fi fi n m n @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_detail);
 
 Intent i = getIntent();
 String imageUrl = i.getStringExtra("imageUrl");
 String jname = i.getStringExtra("jname");
 String ename = i.getStringExtra("ename");
 
 ImageView iv = (ImageView)findViewById(R.id.imageView);
 Glide.with(this).load(imageUrl).into(iv);
 
 TextView tv1 = (TextView)findViewById(R.id.textView1);
 tv1.setText(jname);
 
 TextView tv2 = (TextView)findViewById(R.id.textView2);
 tv2.setText(ename);
 
 Button b = (Button)findViewById(R.id.button);
 b.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {
 finish();
 }
 });
 }
 E4CCBDB 6D84F H8 [email protected] ) (. )

44. ) (. . )0 JU ) ( S1H O z n aS a n JU z fi fi n fi n @Override
 protected void onCreate(Bundle savedInstanceState) {
 : 
 lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 Item item = items.get(position);
 
 Intent i = new Intent(MainActivity.this, DetailActivity.class);
 i.putExtra("imageUrl", item.imageUrl);
 i.putExtra("jname", item.jname);
 i.putExtra("ename", item.ename);
 
 startActivity(i);
 }
 });
 }
 E4CCBDB 6D84F H8 [email protected] ) (.

45. ) (. . )0 1SIVT I d:T S e JU 1H z 4 aWcWaf zn fi n (" o 9W S 2 ASd 2 >]a W 4 aWcWaf n )" 4RR O 4 aWcWaf a] @]PW S fi 8[ af 4 aWcWaf nLASeaM " 6b a][WgS aVS 4 aWcWaf fi 4 aWcWaf AO[S 7SaOW 4 aWcWaf nL9W W VM JU ( z OcO fl fi n E4CCBDB 6D84F H8 [email protected] ) (.

46. ) (. . )0 JU ) z JU ) 4J 1H P z fi n @OW 4 aWcWaf aS a fi fi n m n JU ) ( S1H P z n aS a n JU z fi fi n fi n override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.activity_detail)
 
 val imageUrl = intent.getStringExtra("imageUrl")
 val jname = intent.getStringExtra("jname")
 val ename = intent.getStringExtra("ename")
 
 val iv = findViewById(R.id.imageView) as ImageView
 Glide.with(this).load(imageUrl).into(iv)
 
 val tv1 = findViewById(R.id.textView1) as TextView
 tv1.text = jname
 
 val tv2 = findViewById(R.id.textView2) as TextView
 tv2.text = ename
 
 val b = findViewById(R.id.button) as Button
 b.setOnClickListener { _ -> finish() }
 }
 override fun onCreate(savedInstanceState: Bundle?) { :
 lv.setOnItemClickListener { parent, view, position, id ->
 val item = items[position]
 val i = Intent(this, DetailActivity::class.java)
 i.putExtra("imageUrl", item.imageUrl)
 i.putExtra("jname", item.jname)
 i.putExtra("ename", item.ename)
 startActivity(i)
 }
 } E4CCBDB 6D84F H8 [email protected] ) (. ,

47. ) (. . )0 d GOJH J 3 e JU 4J C J 3TS VT JV z 7SaOW HWSd6] a_] S_ zn fi n (" o 9W S 2 ASd 2 9W S n )" 6V]] S O aS[ OaS T]_ f]b_ Sd i S fi 6] ]O F]b V 6 O nLASeaM " 6V]] S ] aW] T]_ f]b_ Sd i S fi 6 O 7SaOW HWSd6] a_] S_ m O UbOUS BPXS aWcS 6 nLASeaM " fi nL6_SOaSM E4CCBDB 6D84F H8 [email protected] ) (. -

48. ) (. . )0 JU ( c c cfl a JU ( C J 3TS VT JV a o o o HWSd6] a_] S_ n mHWSd6] a_] S_ 6 O 7SaOW HWSd6] a_] S_ n VU ( ( 4J C J 3TS VT JV y c a z o z 7SaOW HWSd6] a_] S_ o n z n E4CCBDB 6D84F H8 [email protected] ) (. .

49. ) (. . )0 B88R LJC J B8 GJ B82 TS n J ( .l WCV] S. K , IWRaV (- SWUVa (- 6] aS a @]RS 4 S a 9Wa d GJ GJ (e J K )/ / IWRaV .,l WCV] S. SWUVa 4 WU [S a 68AF8D 9] a Ef aS[ ) 6] ]_ 5 O Y WUVa :_Of 6] ]_ J K ,,.l WCV] S. IWRaV .,l WCV] S. SWUVa FWa S E4CCBDB 6D84F H8 [email protected] ) (. /

50. ) (. . )0 JU ( ) JL J a HWSd6] a_] S_ [email protected] 7SaOW HWSd6] a_] S_ z ESUbS fi n ESUbS WRS aWiS_ RSaOW n o z n E4CCBDB 6D84F H8 [email protected] ) (. 0

51. ) (. . )0 JU ) z JU ) 4J C J 3TS VT JV z fi n fi fi n m n 4J C J 3TS VT JV M 4J C J 3TS VT JV R @interface DetailViewController : UIViewController @property (nonatomic, strong) NSString* imageUrl; @property (nonatomic, strong) NSString* jname; @property (nonatomic, strong) NSString* ename; @end #import <SDWebImage/UIImageView+WebCache.h> @interface DetailViewController () @property (nonatomic, weak) IBOutlet UIImageView* iv; @property (nonatomic, weak) IBOutlet UILabel* tv1; @property (nonatomic, weak) IBOutlet UILabel* tv2; - (IBAction)close:(id)sender; @end @implementation DetailViewController - (void)viewDidLoad { [super viewDidLoad]; [_iv sd_setImageWithURL:[NSURL URLWithString:_imageUrl]]; _tv1.text = _jname; _tv2.text = _ename; } : - (void)close:(id)sender { [self dismissViewControllerAnimated:NO completion:nil]; } E4CCBDB 6D84F H8 [email protected] ) (. ,

52. ) (. . )0 JU ) ( C J 3TS VT JV z n fi n C J 3TS VT JV R JU ) ) x c z 5Bba Sa fi fl o o o o n m n JU z fi fi n fi n #import "DetailViewController.h" : - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"detail"]) { Item* item = _items[_tableView.indexPathForSelectedRow.row]; DetailViewController* controller = segue.destinationViewController; controller.imageUrl = item.imageUrl; controller.jname = item.jname; controller.ename = item.ename; } } E4CCBDB 6D84F H8 [email protected] ) (. ,(

53. ) (. . )0 d K e JU 4J C J 3TS VT JV z BPXS aWcS 6 fl fi n6V]] S ] aW] T]_ f]b_ Sd _]XS a1 fi O UbOUS BPXS aWcS 6 fi EdWTa “ yn JU ( c c cfl a BPXS aWcS 6 fl fi n JU ) z JU ) 4J C J 3TS VT JV z fi n fi fi n m n import UIKit import SDWebImage class DetailViewController: UIViewController { var imageUrl:String? var jname:String? var ename:String? @IBOutlet var iv:UIImageView? @IBOutlet var tv1:UILabel? @IBOutlet var tv2:UILabel? override func viewDidLoad() { super.viewDidLoad() iv?.sd_setImage(with: URL(string: imageUrl!)) tv1?.text = jname tv2?.text = ename } : @IBAction func close() { self.dismiss(animated: false, completion: nil) } E4CCBDB 6D84F H8 [email protected] ) (. ,)

54. ) (. . )0 JU ) ( C J 3TS VT JV z n fi n C J 3TS VT JV W K JU ) ) x c z BPXS aWcS 6 fl fi n JU z fi fi n fi n m w v w ak n wotb override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "detail" { let item = items[(tableView?.indexPathForSelectedRow?.row)!] let controller = segue.destination as! DetailViewController controller.imageUrl = item.imageUrl controller.jname = item.jname controller.ename = item.ename } } E4CCBDB 6D84F H8 [email protected] ) (. ,

#import presentations

Introduction to ml
18. 06. 2020
0 views

Introduction to ml

Python OpenCV Real Time projects
31. 05. 2020
0 views

Python OpenCV Real Time projects

Related presentations