DroidParts - Android 8-in-1 рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЦреЛрд▓рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди Google Play рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ, рд▓рд┐рдЦрд┐рдд, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдмрд╛рдПрдВ рдмрд╛рдПрдБ mNogoy рджреНрд╡рд╛рд░рд╛, рд▓реЗрдХрд┐рди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рд╕рд╣реА рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд╡рд┐рд╕ 8-рдмреНрд▓реЗрдб Android рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪрд╛рдХреВ DroidParts , рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧрд╛:

  1. рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди : рдкреНрд░рдгрд╛рд▓реА рдФрд░ рдХрд╕реНрдЯрдо рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг;
  2. SQLite рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд┐рдВрдЧ : CRUD рдСрдкрд░реЗрд╢рди "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░";
  3. рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдПрдХреНрд╢рдирдмрд╛рд░ рд╢рд░реНрд▓рдХ;
  4. JSON рдХрд╛ рд╕рд░рд▓ (рдбреА) рдХреНрд░рдорд╛рдВрдХрди ;
  5. AsyncTasks, рдЕрдкрд╡рд╛рдж рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде IntentService;
  6. JSON рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╖реНрдард┐рдд HTTP рдХреНрд▓рд╛рдЗрдВрдЯ ;
  7. рдПрд▓ред рдУрдЧ рдПрдХ рдЯреИрдЧ рдХреЗ рдмрд┐рдирд╛, AndroidManifest рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕;
  8. рдХреИрд╢реНрдб рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ http-рд▓реЛрдбрд░, рд╡реНрдпреВ рдФрд░ рдЗрдВрдЯреЗрдВрдЯ рд╣реЗрд▓реНрдкрд░реНрд╕ рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ ред


рд╕рд┐рд░реНрдл рдПрдХ рдШрдВрдЯреЗ рдкрд╣рд▓реЗ * рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ ...

рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВ рдкреБрд░рд╛рдиреЗ рд╕реНрдХреВрд▓ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдерд╛, рдЬрд┐рд╕рдХреА рд╢реИрд▓реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдереА:

 private Button btn; onCreate(Bundle b) { super.onCreate(b); btn = (Button)findViewById(R.id.btn); } 

рдЬрдм рддрдХ рд╡рд╣ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд░реЛрдмреЛрдЧреНрдпреВрдЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рдерд╛ред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж:

 @InjectView private Button btn; 

рдХреЛрдИ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╡рд╛рдкрд╕реА рдирд╣реАрдВ рдереАред

рджреВрд╕рд░реА рдУрд░, RoboGuice, Fragments рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрдХрд╛рд░ рдФрд░ рдЕрднреА рднреА рдЕрдкреНрд░рдмрдВрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдШрдмрд░рд╛рдпрд╛ рд╣реБрдЖ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдУрдЖрд░рдПрдо рдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдФрд░ GSON рдЖрд╕рд╛рди JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕реЗ рдЧрд▓рдд рдХрд░реЗрдВ, рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрдХрд╛рд░реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЦреАрдВрдЪреЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, " рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕рд╣реА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВ " рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдордиреЛрд░рдВрдЬрди рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХреАред

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЖрдпрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 0.5 рдореЗрдВ github.com/yanchenko/droidparts рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рд╣рдо рдмрд╛рдж рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрд░рддреЗ рд╣реИрдВ git clone github.com/yanchenko/droidparts.git git clone github.com/yanchenko/droidparts.git рдФрд░ base , extra , sample рд╕реЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдВрдкреЛрд░реНрдЯ рдХрд░реЗрдВред
рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рд╣реИрдВред
рдмрд╛рдж рдХреЗ project.properties , рдЬреЛ рдПрдХ рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ, рд▓рд╛рдЗрди proguard.config=../proguard.cfg , рдЬреЛ .apk рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрд╢реЛрдзрд┐рдд рдСрдмрдлрд╕рдХреЗрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ DroidParts рдореЗрдВ custom org.droidparts.Application , рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╣реА рд╣реЛрддреА рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдРрд╕реА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдиреА рдЦреБрдж рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдПрдХ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
AndroidManifest.xml рд▓рд╛рдЗрди:

 <meta-data android:name="droidparts_dependency_provider" android:value=".DependencyProvider" /> 

рдПрдХ рд╡рд░реНрдЧ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ org.droidparts.inject.AbstractDependencyProvider рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ org.droidparts.inject.AbstractDependencyProvider рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдХрд╛рд░рдЦрд╛рдирд╛ рд╣реИред

рдпрд╣ рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ DependencyProvider рд╡рд┐рдзрд┐ рдПрдХ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдПрдХрд▓ Context рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдПрдХ рдЗрдВрдЬреЗрдХреНрд╢рди рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрджрд░реНрдн рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреВрдЖрдИ рд╕реЗ рдЬреБрдбрд╝реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╕рд╣рд┐рдд рдХреЛрдб рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдПрдХрд▓ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдПрдХрд▓ , рд╣рд╛рд╣рд╛рд╣рд╛, рдореИрдВ рдЕрдиреБрд╡рд╛рдж рдХреА рд╢рд░реНрддреЛрдВ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ), рдЖрдк рд╕реАрдзреЗ org.droidparts.sample.DependencyProvider рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХреЛрдВ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ Injector.get().inject(...) рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЛ @Inject... рджреНрд╡рд╛рд░рд╛ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ @Inject... ред Activity , Service , рдЖрджрд┐ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдореИрдиреБрдЕрд▓ рдХреЙрд▓ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред org.droidparts ред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ org.droidparts.sample.activity.EntryListActivity рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:

  @Override public void onPreInject() { setContentView(R.layout.activity_entry_list); } 

рдЗрдВрдЬреЗрдХреНрдЯрд░ рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдХреЙрд▓ onCreate(...) рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд View рд▓рд┐рдП рд▓реЗ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рдЕрд░рд╛рдЬрдХ рд╕рдордЭ рдкрд░, рдореИрдВ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд▓реЗрдЦ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдЖрдИ, рдУрдЖрд░рдПрдо рдФрд░ рдЬреЗрдПрд╕рдПрди рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рдЙрджрд╛рд╣рд░рдг, рдЖрд╡реЗрджрди рдореЗрдВ рд╣реИрдВред рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдЖрдЧреЗ рдХреЗ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИред
рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ Activity рд▓рд┐рдП рдХреИрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рдВрдХреЗрдд: рдпрд╣ рдкреИрдЯрд░реНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╣реИ)ред

рдореИрдВ рдпрд╣рд╛рдВ рдпрд╛ рд╡рд╣рд╛рдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛: stackoverflow.com/questions/tagged/droidparts ред

рдзрдиреНрдпрд╡рд╛рдж, рдФрд░ рдХреГрдкрдпрд╛ рдХрдо рдХреЛрдб рд▓рд┐рдЦреЗрдВ! (:

* рдХрд▓ рд░рд╛рдд рддрдХред

Source: https://habr.com/ru/post/In145176/


All Articles