Your SlideShare is downloading. ×
  • Like
[NEXT] Nextgram Refactoring
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

[NEXT] Nextgram Refactoring

  • 584 views
Published

android …

android
refactoring
code naming
shared reference
stan4j
implicit intent

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
584
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
31
Comments
0
Likes
15

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. DAY
  • 2.   -
  • 3.   7 “Refactoring”
  • 4. 학습목표 ! • 유지보수가
  • 5.   쉽게
  • 6.   리팩토링을
  • 7.   할
  • 8.   수
  • 9.   있습니다.
  • 10.    • STAN4J를
  • 11.   활용할
  • 12.   수
  • 13.   있습니다.
  • 14.   
  • 15.    • 
  • 16.   SharedPreference를
  • 17.   사용할
  • 18.   수
  • 19.   있습니다.
  • 20.   
  • 21.    • 묵시적
  • 22.   인텐트를
  • 23.   사용할
  • 24.   수
  • 25.   있습니다.
  • 26.    이
  • 27.   학습을
  • 28.   마치면…⋯.
  • 29. 상황1. 원하는 책을 찾는 Z군 코드네이밍
  • 30. 서재에 책이 단 한권만 있다면?
  • 31. 한 7권쯤 있어도???
  • 32. 한 20권쯤 있으면….
  • 33. 감당할
  • 34.   수
  • 35.   없을
  • 36.   만큼의
  • 37.   책들은?
  • 38. 어떻게
  • 39.   하면
  • 40.   원하는
  • 41.   책을
  • 42.   쉽게
  • 43.   찾지? 논술.. 컴퓨터.. 수학..
  • 44. 우리에게 필요한건 ?! 책
  • 45.   분류
  • 46.   라벨링
  • 47. 아무리
  • 48.   이런
  • 49.   큰
  • 50.   서재라고
  • 51.   해도!
  • 52. 이곳엔
  • 53.   컴퓨터관련
  • 54.   책이
  • 55.   있어요
  • 56. 이곳엔
  • 57.   수학관련
  • 58.   책이
  • 59.   있어요
  • 60. 이곳엔
  • 61.   논술관련
  • 62.   책이
  • 63.   있다면.
  • 64.   빨리
  • 65.   찾을수
  • 66.   있겠죠?
  • 67. 이거
  • 68.   어때
  • 69.   ­–
  • 70.   How
  • 71.   About
  • 72.   분석
  • 73.   사례
  • 74.    https://github.com/recomio/howabout-android
  • 75.   
  • 76. 두
  • 77.   가지의
  • 78.   스트리밍
  • 79.   서비스를
  • 80.   이용해
  • 81.   음악
  • 82.   재생.
  • 83. 이거
  • 84.   어때
  • 85.   앱
  • 86.   아키텍처
  • 87.   
  • 88.    새로운
  • 89.   스트리밍
  • 90.   서비스를
  • 91.   추가하고
  • 92.   싶어요! ActionBarSherlock
  • 93.   
 (액션바) Universal
  • 94.   Image
  • 95.   Loader
  • 96.   
  • 97.    (이미지
  • 98.   로딩) 
  • 99.   spring-android
  • 100.   
  • 101.    (RESTful) 
  • 102.   ViewPagerIndicator
  • 103.   
  • 104.    (뷰페이저) 
  • 105.   RoboSpice
  • 106.   
  • 107.    (비동기
  • 108.   네트워킹) 
  • 109.   RoboGuice
  • 110.   
 (인스턴스
  • 111.   인젝션) 
  • 112.   adlibr
  • 113.   
  • 114.    (광고) 
  • 115.   Flurry
  • 116.   
  • 117.    (트래픽
  • 118.   분석) 
  • 119.   Jackson
  • 120.   
  • 121.    (JSON)
  • 122. 이거
  • 123.   어때
  • 124.   ­–
  • 125.   오염도
  • 126. 이거
  • 127.   어때
  • 128.   ­–
  • 129.   Tangled
  • 130.   (Circular
  • 131.   Dependency)
  • 132. 이거
  • 133.   어때
  • 134.   ­–
  • 135.   Cyclomatic
  • 136.   Complexity
  • 137. 이거
  • 138.   어때
  • 139.   ­–
  • 140.   Distance
  • 141. 이거
  • 142.   어때
  • 143.   ­–
  • 144.   Distance
  • 145. 이거
  • 146.   어때
  • 147.   앱
  • 148.   아키텍처 ActionBarSherlock
  • 149.   
 (액션바) Universal
  • 150.   Image
  • 151.   Loader
  • 152.   
  • 153.    (이미지
  • 154.   로딩) 
  • 155.   spring-android
  • 156.   
  • 157.    (RESTful) 
  • 158.   ViewPagerIndicator
  • 159.   
  • 160.    (뷰페이저) 
  • 161.   RoboSpice
  • 162.   
  • 163.    (비동기
  • 164.   네트워킹) 
  • 165.   RoboGuice
  • 166.   
 (인스턴스
  • 167.   인젝션) 
  • 168.   adlibr
  • 169.   
  • 170.    (광고) 
  • 171.   Flurry
  • 172.   
  • 173.    (트래픽
  • 174.   분석) 
  • 175.   Jackson
  • 176.   
  • 177.    (JSON)
  • 178. 새롭게
  • 179.   아키텍처
  • 180.   계층화
  • 181.   적용
  • 182. 이렇게  구조를  바꾸어  봅시다.   24
  • 183. 상황2. 3개월만에 프로젝트를 실행시킨 Y양 코드네이밍
  • 184. 오랜만에
  • 185.   프로젝트를
  • 186.   튜닝할
  • 187.   생각에
  • 188.   신이난
  • 189.   Y양
  • 190. 글들이
  • 191.   적혀있는
  • 192.   홈
  • 193.   화면에
  • 194.   기능을
  • 195.   추가하자!
  • 196. 먼저,
  • 197.   Eclipse를
  • 198.   실행한
  • 199.   후..
  • 200. 현재 있는 클래스들..
  • 201. 현재 있는 클래스들.. Article ArticleViewer ArticleWriter CustomAdapter Dao Img_Downloader Proxy ProxyUP Util MainActivity
  • 202. 글들이
  • 203.   적혀있는
  • 204.   홈
  • 205.   화면 Article ArticleViewer ArticleWriter CustomAdapter Dao Img_Downloader Proxy ProxyUP Util MainActivity 이 화면은 어느 클래스 일까요?
  • 206. Article ArticleViewer ArticleWriter CustomAdapter Dao Img_Downloader Proxy ProxyUP Util MainActivity 이 화면은 어느 클래스 일까요? 글들이 적혀있는 홈 화면이 MainActivity?? 글들이
  • 207.   적혀있는
  • 208.   홈
  • 209.   화면
  • 210. 이곳에는
  • 211.   
  • 212.   “#?!@#$”한
  • 213.   책이
  • 214.   있지.
  • 215. 글들이
  • 216.   적혀있는
  • 217.   홈
  • 218.   화면원하는
  • 219.   수학책은 수학라벨이
  • 220.   붙은
  • 221.   책장에
  • 222.    있고 Main
  • 223.   Activity
  • 224. 글들이
  • 225.   적혀있는
  • 226.   홈
  • 227.   화면은원하는
  • 228.   수학책 수학라벨이
  • 229.   붙은
  • 230.   책장 Main
  • 231.   Activity에
  • 232.   있다?
  • 233. Main
  • 234.   Activity에
  • 235.   있다? 원하는
  • 236.   수학책 수학라벨이
  • 237.   붙은
  • 238.   책장 HomeView 는 어떨까? 글들이
  • 239.   적혀있는
  • 240.   홈
  • 241.   화면은
  • 242. 우리에게 필요한건 ?! 코드
  • 243.   네이밍 더
  • 244.   나은
  • 245.   유지보수를
  • 246.   위한
  • 247. 더
  • 248.   나은
  • 249.   유지보수를
  • 250.   위해 객체의 이름은 실제 객체가 하는 역할을 추측할 수 있어야 한다. 원하는 기능을 찾기 위해서 헤멜필요는 없으니까.. 팀워크하는 상황에서 상대방은 모르니까..
  • 251. 우리의 프로젝트에 적용해보자!
  • 252. 1. 클래스파일
  • 253.   위에서
  • 254.   마우스
  • 255.   우클릭
  • 256.    2. Refactor
  • 257.   클릭
  • 258.    3. Rename
  • 259.   클릭 Eclipse 에서 Rename하는 방법(1)
  • 260. Eclipse 에서 Rename하는 방법(2) 1. 위의
  • 261.   창이
  • 262.   뜨면
  • 263.   ‘New
  • 264.   name
  • 265.   :’
  • 266.   옆에
  • 267.   원하는
  • 268.   이름으로
  • 269.   수정
  • 270. Eclipse 에서 Rename하는 방법(3) 이렇게
  • 271.   이름을
  • 272.   바꿀경우
  • 273.   MainActivity를
  • 274.   참조하던
  • 275.   것들의
  • 276.   이름이
  • 277.   모두
  • 278.   
  • 279.   
  • 280.    HomeView로
  • 281.   바뀌게
  • 282.   되어
  • 283.   프로젝트가
  • 284.   꼬이지
  • 285.   않습니다.
  • 286. Article대상 목적 Article객체를
  • 287.   다루기
  • 288.   위한
  • 289.   DTO…⋯? 수정
  • 290. Article대상 목적 Article객체를
  • 291.   다루기
  • 292.   위한
  • 293.   DTO…⋯? 수정 ArticleDTO
  • 294. 대상 목적 글을
  • 295.   쓰는
  • 296.   화면 수정 ArticleWriter
  • 297. 대상 목적 수정 WritingArticleView 글을
  • 298.   쓰는
  • 299.   화면 ArticleWriter
  • 300. ArticleViewer대상 목적 글
  • 301.   한개를
  • 302.   읽는
  • 303.   화면 수정
  • 304. 대상 목적 수정 ArticleView ArticleViewer 글
  • 305.   한개를
  • 306.   읽는
  • 307.   화면
  • 308. ProxyUp대상 목적 글을
  • 309.   적을때
  • 310.   작동하는
  • 311.   프록시 수정
  • 312. 대상 목적 수정 ArticleWritingProxy ProxyUp 글을
  • 313.   적을때
  • 314.   작동하는
  • 315.   프록시
  • 316. CustomAdapter대상 목적 HomeView에서
  • 317.   사용되는
  • 318.   Adapter 수정
  • 319. 대상 목적 수정 HomeViewAdapter CustomAdapter HomeView에서
  • 320.   사용되는
  • 321.   Adapter
  • 322. 코드
  • 323.   네이밍
  • 324.   적용
  • 325.   전
  • 326. 코드
  • 327.   네이밍
  • 328.   적용
  • 329.   후
  • 330. 이름은 좋은데.. 뭔가 구조가 답답한데? 코드
  • 331.   네이밍
  • 332.   적용
  • 333.   후
  • 334. 프로젝트의 의존도 상황 HomeView에 너무 집중되어 있다. 이유는?
  • 335. 중복!
  • 336. 공통된 자원을 HomeView에서 관리하기 때문에
  • 337. 그럼 공통된 자원을 공통된 공간에 저장하자!
  • 338. Shared
  • 339.   Preferences
  • 340.    
  • 341.    Store
  • 342.   private
  • 343.   primitive
  • 344.   data
  • 345.   in
  • 346.   key-value
  • 347.   pairs.
  • 348.    ! Internal
  • 349.   Storage
  • 350.    
  • 351.    Store
  • 352.   private
  • 353.   data
  • 354.   on
  • 355.   the
  • 356.   device
  • 357.   memory.
  • 358.    ! External
  • 359.   Storage
  • 360.    
  • 361.    Store
  • 362.   public
  • 363.   data
  • 364.   on
  • 365.   the
  • 366.   shared
  • 367.   external
  • 368.   storage.
  • 369.    ! SQLite
  • 370.   Databases
  • 371.    
  • 372.    Store
  • 373.   structured
  • 374.   data
  • 375.   in
  • 376.   a
  • 377.   private
  • 378.   database.
  • 379.    ! Network
  • 380.   Connection
  • 381.    
  • 382.    Store
  • 383.   data
  • 384.   on
  • 385.   the
  • 386.   web
  • 387.   with
  • 388.   your
  • 389.   own
  • 390.   network
  • 391.   server.
  • 392.    안드로이드에서
  • 393.   추천하는
  • 394.   Data
  • 395.   Storage
  • 396.   방법들
  • 397. Shared
  • 398.   Preferences
  • 399.    
  • 400.    Store
  • 401.   private
  • 402.   primitive
  • 403.   data
  • 404.   in
  • 405.   key-value
  • 406.   pairs.
  • 407.    ! Internal
  • 408.   Storage
  • 409.    
  • 410.    Store
  • 411.   private
  • 412.   data
  • 413.   on
  • 414.   the
  • 415.   device
  • 416.   memory.
  • 417.    ! External
  • 418.   Storage
  • 419.    
  • 420.    Store
  • 421.   public
  • 422.   data
  • 423.   on
  • 424.   the
  • 425.   shared
  • 426.   external
  • 427.   storage.
  • 428.    ! SQLite
  • 429.   Databases
  • 430.    
  • 431.    Store
  • 432.   structured
  • 433.   data
  • 434.   in
  • 435.   a
  • 436.   private
  • 437.   database.
  • 438.    ! Network
  • 439.   Connection
  • 440.    
  • 441.    Store
  • 442.   data
  • 443.   on
  • 444.   the
  • 445.   web
  • 446.   with
  • 447.   your
  • 448.   own
  • 449.   network
  • 450.   server.
  • 451.    안드로이드에서
  • 452.   추천하는
  • 453.   Data
  • 454.   Storage
  • 455.   방법들 우리가 사용할 방법
  • 456. Shared Preferences공유되는 정보는 공통된 공간에 따로 모아두자
  • 457. Shared
  • 458.   Preferences는 • primitive
  • 459.   data
  • 460.   타입들을
  • 461.   key-value
  • 462.   기반으로
  • 463.   저장 하거나
  • 464.   얻어올
  • 465.   수
  • 466.   있습니다.
  • 467.    ! ! • 내부
  • 468.   File에
  • 469.   저장하기
  • 470.   때문에
  • 471.   어플리케이션이
  • 472.    종료되어도
  • 473.   정보가
  • 474.   저장됩니다. primitive
  • 475.   data:
  • 476.   booleans,
  • 477.   floats,
  • 478.   ints,
  • 479.   longs,
  • 480.   and
  • 481.   strings
  • 482. Shared
  • 483.   Preferences
  • 484.   사용방법
  • 485. 참고
  • 486.   :
  • 487.   http://developer.android.com/reference/android/content/Context.html#getSharedPreferences(java.lang.String,
  • 488.   int) 1)
  • 489.   Shared
  • 490.   Preferences
  • 491.   객체
  • 492.   가져오기 인자값 반환값 name mode 원하는
  • 493.   preference
  • 494.   파일명.
  • 495.   만약
  • 496.   이
  • 497.   이름의
  • 498.   preference이
  • 499.   존재하지
  • 500.    않다면
  • 501.   파일을
  • 502.   생성한다. 작동
  • 503.   mode를
  • 504.   설정한다.
  • 505.   MODE_PRIVATE가
  • 506.   기본값이다.
  • 507.    preference
  • 508.   값들을
  • 509.   수정하고
  • 510.   가져올
  • 511.   수
  • 512.   있는
  • 513.   SharedPreferences
  • 514.   인스턴스를
  • 515.   반환한다.
  • 516. 2)
  • 517.   Shared
  • 518.   Preferences
  • 519.   Editor 
  • 520.   
  • 521.   
  • 522.   
  • 523.   
  • 524.   
  • 525.   
  • 526.   
  • 527.   SharedPreferences
  • 528.   pref
  • 529.   =
  • 530.   getSharedPreferences("SharedPref",
  • 531.   MODE_PRIVATE);
  • 532.    
  • 533.   
  • 534.   
  • 535.   
  • 536.   
  • 537.   
  • 538.   
  • 539.   
  • 540.   SharedPreferences.Editor
  • 541.   editor
  • 542.   =
  • 543.   pref.edit();
  • 544.    
  • 545.   
  • 546.   
  • 547.   
  • 548.   
  • 549.   
  • 550.   
  • 551.   
  • 552.   editor.putString(“name",
  • 553.   “Android");
  • 554.    
  • 555.   
  • 556.   
  • 557.   
  • 558.   
  • 559.   
  • 560.   
  • 561.   
  • 562.   editor.commit(); • SharedPreferences.Editor을
  • 563.   반환하는
  • 564.   SharedPreferences
  • 565.   의
  • 566.   메서드 example SharedPreferences
  • 567. 2)
  • 568.   Shared
  • 569.   Preferences
  • 570.   Editor • SharedPreferences
  • 571.   객체의
  • 572.   값을
  • 573.   수정하기
  • 574.   위해서
  • 575.   필요한
  • 576.   클래스 
  • 577.   
  • 578.   
  • 579.   
  • 580.   
  • 581.   
  • 582.   
  • 583.   
  • 584.   SharedPreferences
  • 585.   pref
  • 586.   =
  • 587.   getSharedPreferences("SharedPref",
  • 588.   MODE_PRIVATE);
  • 589.    
  • 590.   
  • 591.   
  • 592.   
  • 593.   
  • 594.   
  • 595.   
  • 596.   
  • 597.   SharedPreferences.Editor
  • 598.   editor
  • 599.   =
  • 600.   pref.edit();
  • 601.    
  • 602.   
  • 603.   
  • 604.   
  • 605.   
  • 606.   
  • 607.   
  • 608.   
  • 609.   editor.putString(“name",
  • 610.   “Android");
  • 611.    
  • 612.   
  • 613.   
  • 614.   
  • 615.   
  • 616.   
  • 617.   
  • 618.   
  • 619.   editor.commit(); • 값을
  • 620.   수정한
  • 621.   후
  • 622.   변경
  • 623.   내용을
  • 624.   저장하기
  • 625.   위한
  • 626.   Editor
  • 627.   의
  • 628.   메서드 SharedPreferences.Editor example
  • 629. 3)
  • 630.   Shared
  • 631.   Preferences
  • 632.   값
  • 633.   저장하기 
  • 634.   
  • 635.   
  • 636.   
  • 637.   
  • 638.   
  • 639.   
  • 640.   
  • 641.   SharedPreferences
  • 642.   pref
  • 643.   =
  • 644.   getSharedPreferences("SharedPref",
  • 645.   MODE_PRIVATE);
  • 646.    
  • 647.   
  • 648.   
  • 649.   
  • 650.   
  • 651.   
  • 652.   
  • 653.   
  • 654.   SharedPreferences.Editor
  • 655.   editor
  • 656.   =
  • 657.   pref.edit();
  • 658.    
  • 659.   
  • 660.   
  • 661.   
  • 662.   
  • 663.   
  • 664.   
  • 665.   
  • 666.   editor.putString(“name",
  • 667.   “Android");
  • 668.    
  • 669.   
  • 670.   
  • 671.   
  • 672.   
  • 673.   
  • 674.   
  • 675.   
  • 676.   editor.commit(); • key를
  • 677.   기반으로
  • 678.   value를
  • 679.   저장하는
  • 680.   Editor
  • 681.   의
  • 682.   메서드 SharedPreferences.Editor example
  • 683. 3)
  • 684.   Shared
  • 685.   Preferences
  • 686.   값
  • 687.   저장하기 참고
  • 688.   :
  • 689.   http://developer.android.com/reference/android/content/SharedPreferences.Editor.html Boolean,
  • 690.   Float,
  • 691.   Int,
  • 692.   Long,
  • 693.   String,
  • 694.   StringSet의
  • 695.   자료
  • 696.   저장
  • 697.   가능
  • 698. 4)
  • 699.   Shared
  • 700.   Preferences
  • 701.   값
  • 702.   삭제하기 
  • 703.   
  • 704.   
  • 705.   
  • 706.   
  • 707.   
  • 708.   
  • 709.   
  • 710.   SharedPreferences
  • 711.   pref
  • 712.   =
  • 713.   getSharedPreferences("SharedPref",
  • 714.   MODE_PRIVATE);
  • 715.    
  • 716.   
  • 717.   
  • 718.   
  • 719.   
  • 720.   
  • 721.   
  • 722.   
  • 723.   SharedPreferences.Editor
  • 724.   editor
  • 725.   =
  • 726.   pref.edit();
  • 727.    
  • 728.   
  • 729.   
  • 730.   
  • 731.   
  • 732.   
  • 733.   
  • 734.   
  • 735.   editor.remove("name");
  • 736.    
  • 737.   
  • 738.   
  • 739.   
  • 740.   
  • 741.   
  • 742.   
  • 743.   
  • 744.   editor.commit(); • key에
  • 745.   해당하는
  • 746.   값을
  • 747.   삭제한다 SharedPreferences.Editor example
  • 748. 5)
  • 749.   Shared
  • 750.   Preferences
  • 751.   값
  • 752.   모두
  • 753.   삭제하기 
  • 754.   
  • 755.   
  • 756.   
  • 757.   
  • 758.   
  • 759.   
  • 760.   
  • 761.   SharedPreferences
  • 762.   pref
  • 763.   =
  • 764.   getSharedPreferences("SharedPref",
  • 765.   MODE_PRIVATE);
  • 766.    
  • 767.   
  • 768.   
  • 769.   
  • 770.   
  • 771.   
  • 772.   
  • 773.   
  • 774.   SharedPreferences.Editor
  • 775.   editor
  • 776.   =
  • 777.   pref.edit();
  • 778.    
  • 779.   
  • 780.   
  • 781.   
  • 782.   
  • 783.   
  • 784.   
  • 785.   
  • 786.   editor.clear();
  • 787.    
  • 788.   
  • 789.   
  • 790.   
  • 791.   
  • 792.   
  • 793.   
  • 794.   
  • 795.   editor.commit(); SharedPreferences.Editor example • SharedPreferences에
  • 796.   있는
  • 797.   모든
  • 798.   값을
  • 799.   삭제한다
  • 800. 6)
  • 801.   Shared
  • 802.   Preferences
  • 803.   값
  • 804.   가져오기 
  • 805.   
  • 806.   
  • 807.   
  • 808.   
  • 809.   
  • 810.   
  • 811.   
  • 812.   SharedPreferences
  • 813.   pref
  • 814.   =
  • 815.   getSharedPreferences("SharedPref",
  • 816.   MODE_PRIVATE);
  • 817.    
  • 818.   
  • 819.   
  • 820.   
  • 821.   
  • 822.   
  • 823.   
  • 824.   
  • 825.   pref.getString("name",
  • 826.   "IOS"); SharedPreferences example • SharedPreferences에서
  • 827.   key랑
  • 828.   매치되는
  • 829.   값을
  • 830.   가져온다. • defValue는
  • 831.   만약
  • 832.   값이
  • 833.   없을경우
  • 834.   기본으로
  • 835.   사용할
  • 836.   값을
  • 837.   의미
  • 838.   (default
  • 839.   Value)
  • 840. 6)
  • 841.   Shared
  • 842.   Preferences
  • 843.   값
  • 844.   가져오기 참고
  • 845.   :
  • 846.   http://developer.android.com/reference/android/content/SharedPreferences.html boolean,
  • 847.   float,
  • 848.   int,
  • 849.   long,
  • 850.   String,
  • 851.   StringSet의
  • 852.   자료
  • 853.   가져오기
  • 854.   가능
  • 855. Shared
  • 856.   Preferences를
  • 857.   적용해보자
  • 858. Proxy
  • 859.   클래스에
  • 860.   있는
  • 861.   HomeView.SERVER_ADDRESS를
  • 862.   저장해봅시다
  • 863. 1. 어플리케이션이
  • 864.   실행되는
  • 865.   시점에
  • 866.   SharedPreferences
  • 867.   를
  • 868.   통해
  • 869.   Server
  • 870.   URL 을
  • 871.   저장한다.
  • 872.    ! 2. Proxy
  • 873.   class
  • 874.   에서
  • 875.   getSharedPreferences
  • 876.   를
  • 877.   통해
  • 878.   SharedPreferences를
  • 879.   불 러들인다. 적용순서
  • 880. 1.
  • 881.   어플리케이션이
  • 882.   실행되는
  • 883.   시점에
  • 884.   SharedPreferences
  • 885.    를
  • 886.   통해
  • 887.   Server
  • 888.   URL을
  • 889.   저장시킨다.
  • 890. 1. SharedPreferences
  • 891.   변수를
  • 892.   선언
  • 893.    2. getSharedPreferences()를
  • 894.   통해
  • 895.   SharedPreferences
  • 896.   인스턴스
  • 897.   구하기 HomeView.java
  • 898.   -
  • 899.   onCreate
  • 900. getResources()
  • 901.    ! .getString() • 어플리케이션
  • 902.   패키지의
  • 903.   Resource
  • 904.   값들을
  • 905.   가져온다 • string의
  • 906.   형태로
  • 907.   가져온다 HomeView.java
  • 908.   -
  • 909.   onCreate
  • 910. getResources()
  • 911.    ! .getString() • 어플리케이션
  • 912.   패키지의
  • 913.   Resource
  • 914.   값들을
  • 915.   가져온다 • string의
  • 916.   형태로
  • 917.   가져온다 <strings.xml
  • 918.   file> HomeView.java
  • 919.   -
  • 920.   onCreate
  • 921. 1. SharedPreferences.edit()을
  • 922.   통해
  • 923.   Editor를
  • 924.   호출
  • 925.    2. Editor.putString()을
  • 926.   이용해
  • 927.   key,
  • 928.   value
  • 929.   저장
  • 930.    3. Editor.commit()을
  • 931.   통해
  • 932.   변경내용
  • 933.   적용 HomeView.java
  • 934.   -
  • 935.   onCreate
  • 936. 1. SharedPreferences.edit()을
  • 937.   통해
  • 938.   Editor를
  • 939.   호출
  • 940.    2. Editor.putString()을
  • 941.   이용해
  • 942.   key,
  • 943.   value
  • 944.   저장
  • 945.    3. Editor.commit()을
  • 946.   통해
  • 947.   변경내용
  • 948.   적용 <strings.xml
  • 949.   file> HomeView.java
  • 950.   -
  • 951.   onCreate
  • 952. 2.
  • 953.   Proxy
  • 954.   class
  • 955.   에서
  • 956.   getSharedPreferences
  • 957.   를
  • 958.   통해
  • 959.    SharedPreferences를
  • 960.   불러들인다.
  • 961. Proxy
  • 962.   Class
  • 963.   생성자 Proxy
  • 964.   Class
  • 965.   -
  • 966.   getJSON
  • 967.   메서드
  • 968. Before After
  • 969. “View끼리의
  • 970.   의존성을
  • 971.   제거할
  • 972.   필요가
  • 973.   있음”
  • 974. Custom
  • 975.   Implicit
  • 976.    Intent 암시적 인텐트를 사용해보자
  • 977. 인텐트란? • 다른
  • 978.   컴포넌트들에게
  • 979.   기능을
  • 980.   요청하는
  • 981.   메세지
  • 982.   객체 명시적
  • 983.   인텐트 인텐트 타입 암시적
  • 984.   인텐트 • 명시적으로
  • 985.   하나의
  • 986.   컴포넌트를
  • 987.   선택.
  • 988.   실행할
  • 989.   컴포넌트의
  • 990.   클래스명을
  • 991.   지정함. • 암시적으로
  • 992.   여러
  • 993.   컴포넌트
  • 994.   중에서
  • 995.   지정한
  • 996.   특성을
  • 997.   가진
  • 998.   컴포넌트중
  • 999.   하나를
  • 1000.   선택함.
  • 1001. 명시적
  • 1002.   인텐트가
  • 1003.   다른
  • 1004.   액티비티를
  • 1005.   실행시키는
  • 1006.   방법 • Activity
  • 1007.   A
  • 1008.   에서
  • 1009.   행동을
  • 1010.   서술한
  • 1011.   Intent를
  • 1012.   만들고
  • 1013.   startActivity()를
  • 1014.   통해
  • 1015.    Activity
  • 1016.   B에게
  • 1017.   직접
  • 1018.   전달한다
  • 1019. 암시적
  • 1020.   인텐트가
  • 1021.   다른
  • 1022.   액티비티를
  • 1023.   실행시키는
  • 1024.   방법 • Activity
  • 1025.   A
  • 1026.   에서
  • 1027.   행동을
  • 1028.   서술한
  • 1029.   Intent를
  • 1030.   만들고
  • 1031.   startActivity()를
  • 1032.   통해
  • 1033.    Android
  • 1034.   System에게
  • 1035.   전달한다
  • 1036. • Android
  • 1037.   System이
  • 1038.   action을
  • 1039.   서술한
  • 1040.   Intent와
  • 1041.   매치되는
  • 1042.   앱을
  • 1043.   찾는다. 암시적
  • 1044.   인텐트가
  • 1045.   다른
  • 1046.   액티비티를
  • 1047.   실행시키는
  • 1048.   방법
  • 1049. • 매치되는
  • 1050.   앱을
  • 1051.   찾았다면,
  • 1052.   매칭되는
  • 1053.   액티비티의
  • 1054.   onCreate()를
  • 1055.   호출하고
  • 1056.   Intent를
  • 1057.   넘긴다. 암시적
  • 1058.   인텐트가
  • 1059.   다른
  • 1060.   액티비티를
  • 1061.   실행시키는
  • 1062.   방법
  • 1063. 암시적
  • 1064.   인텐트와
  • 1065.   명시적
  • 1066.   인텐트 컴포넌트 컴포넌트 Intent Filter (Action, Data, Category) 명시적
  • 1067.   인텐트 암시적
  • 1068.   인텐트
  • 1069. ArticleView를 호출할 때 암시적 인텐트를 적용해보자
  • 1070. 1.
  • 1071.   Android
  • 1072.   Manifest.xml
  • 1073.   수정하기 • <action>
  • 1074.   
  • 1075.   태그의
  • 1076.   android:name
  • 1077.   속성은
  • 1078.   안드로이드
  • 1079.   시스템이
  • 1080.   액티비티를
  • 1081.   찾을
  • 1082.   때
  • 1083.   활용한다.
  • 1084.    • <category>
  • 1085.   태그의
  • 1086.   android:name
  • 1087.   속성에
  • 1088.   DEFAULT값이
  • 1089.   있어야.
  • 1090.   안드로이드
  • 1091.   시스템이
  • 1092.   해당
  • 1093.   액티비티를
  • 1094.   후보로 서
  • 1095.   확인한다.
  • 1096. 1.
  • 1097.   HomeView.java
  • 1098.   수정하기 • setClass가
  • 1099.   아닌
  • 1100.   setAction임에
  • 1101.   주의
  • 1102. 암시적 인텐트 적용전 암시적 인텐트 적용후
  • 1103. Database 최신의 데이터만 서버에 요청하기
  • 1104. “현재는 이미 저장되어있는 데이터도 반복해서 가져옵니다.” 0..n
  • 1105.   의
  • 1106.   게시물
  • 1107.   모두
  • 1108. 현재
  • 1109.   데이터를
  • 1110.   받아올때
  • 1111.   사용하는
  • 1112.   URL [serverUrl]/loadData.php • 저장되어있는
  • 1113.   모든
  • 1114.   Article을
  • 1115.   반환한다.
  • 1116. [serverUrl]/loadData.php/?articleNumber= 최신데이터만
  • 1117.   갱신하는데
  • 1118.   사용하는
  • 1119.   새로운
  • 1120.   URL • articleNumber
  • 1121.   이후의
  • 1122.   Article을
  • 1123.   반환한다.
  • 1124. • prefArticleNumberKey
  • 1125.   :
  • 1126.   SharedPreferences
  • 1127.   에서
  • 1128.   사용하는
  • 1129.   KeyString을
  • 1130.   의미 • articleNumber
  • 1131.   :
  • 1132.   SharedPreferences
  • 1133.   에서
  • 1134.   prefArticleNubmerKey
  • 1135.   에
  • 1136.   대응되는
  • 1137.   값을
  • 1138.    의미
  • 1139.   (==
  • 1140.   마지막으로
  • 1141.   가져온
  • 1142.   articleNumber를
  • 1143.   의미) • serverUrl
  • 1144.   :
  • 1145.   serverUrl
  • 1146.   과
  • 1147.   articleNumber
  • 1148.   를
  • 1149.   조합.
  • 1150.   서버에
  • 1151.   요청할
  • 1152.   주소를
  • 1153.   의미 1.
  • 1154.   Proxy.java
  • 1155.   수정하기
  • 1156.   -
  • 1157.   서버에
  • 1158.   최신데이터만
  • 1159.   요청
  • 1160. 2.
  • 1161.   Dao.java
  • 1162.   수정하기
  • 1163.   -
  • 1164.   마지막
  • 1165.   데이터
  • 1166.   정보를
  • 1167.   갱신하기 Dao.java의
  • 1168.   insertJsonData
  • 1169.   메서드
  • 1170. • prefArticleNumberKey
  • 1171.   :
  • 1172.   SharedPreferences
  • 1173.   에서
  • 1174.   사용하는
  • 1175.   KeyString을
  • 1176.   의미 • “”+
  • 1177.   articleNumber
  • 1178.   :
  • 1179.   int형
  • 1180.   변수
  • 1181.   articleNumber를
  • 1182.   String으로
  • 1183.   변환 2.
  • 1184.   Dao.java
  • 1185.   수정하기
  • 1186.   -
  • 1187.   마지막
  • 1188.   데이터
  • 1189.   정보를
  • 1190.   갱신하기
  • 1191. 우리가
  • 1192.   여태까지
  • 1193.   한것 정리!
  • 1194. 알아보기
  • 1195.   어려웠던
  • 1196.   클래스의
  • 1197.   이름을
  • 1198. “네이밍”
  • 1199.   을
  • 1200.   통해
  • 1201.   이해하기
  • 1202.   쉽게
  • 1203.   개선했고
  • 1204. HomeView에
  • 1205.   집중되어
  • 1206.   답답했던
  • 1207.   구조를
  • 1208. 공통된
  • 1209.   자원을
  • 1210.   “Shared
  • 1211.   Preferences”를
  • 1212.   통해
  • 1213.   분리시켰으며
  • 1214. View간에
  • 1215.   긴밀했던
  • 1216.   의존성을
  • 1217. “Implicit
  • 1218.   Intent”를
  • 1219.   활용하여
  • 1220.   View간의
  • 1221.   의존성을
  • 1222.   제거했고
  • 1223. API 서버의 URL을 변경해 “최신의 데이터”만 서버에 요청받도록 수정했습니다.
  • 1224. 수고하셨습니다