рдПрдВрдбреНрд░реЙрдЗрдб рдореЙрдиреНрд╕реНрдЯрд░ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо FunLib рд╣реИ

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



рдФрд░ рдЕрдм рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЖрдЦрд┐рд░рдХрд╛рд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдХреБрдЫ рдЦрд╛рд▓реА рд╕рдордп рдкрд╛рдпрд╛ ( рд▓реЗрдЦрдХ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рдпрд╣рд╛рдВ рдЖрдк рд╕рд┐рд░реНрдл рдореЗрд░реЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ )! рдЕрдм рдХреНрдпрд╛ рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ, рдпрд╛ рдХрдИ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдлреИрд╢рдиреЗрдмрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд▓реЗрдЦреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХреА рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдорд┐рддреНрд░ рдХреНрдпрд╛ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░реЗрдЧрд╛ред рдФрд░ рдпрд╣рд╛рдБ рдЙрд╕рдиреЗ рдореБрдЭрд╕реЗ рдЕрдм рддрдХ рдХреНрдпрд╛ рд╕реАрдЦрд╛ рд╣реИ:







рдореБрдЭреЗ рдПрдХ рдвреЗрд░ рдореЗрдВ рдХрд┐рддрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрддреНрд╡реЛрдВ рдХрд╛ рдвреЗрд░ рд▓рдЧрд╛рдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рд╕реЗ рдХрд┐ рдлрдирд▓рд┐рдм рдирд╛рдо рдХрд╛ рдореЗрд░рд╛ рд░рд╛рдХреНрд╖рд╕ рдЬрд╝рд┐рдВрджрд╛ рд╣реЛ рдЧрдпрд╛! рдпрд╣рд╛рдБ рд░реЗрдЯреНрд░реЛрдлрд┐рдЯ, рдЗрд╡реЗрдВрдЯрдмрд╕, рдЬреЙрдмрдХреНрдпреВ рдЬреИрд╕реЗ рд╕рд┐рддрд╛рд░реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ ... рд▓реЗрдХрд┐рди рдЪрд▓реЛ рдЗрд╕реЗ рдХреНрд░рдо рдореЗрдВ рд▓реЗрдВ! рддреЛ, рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреА рдЙрдкрдЬ рдореЗрдВ рдХреМрди рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:



рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рд░реНрдлрд┐рдВрдЧ



рд╣рдо Retrofit + OkHttp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди рдЬрд╛рддреЗ рд╣реИрдВ ред рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдмрдбрд╝реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ, рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд╣рдордд рд╣реВрдБ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:



public interface GithubApi { @GET("/search/repositories?sort=stars&order=desc") SearchResult search(@Query("q") String query); }
      
      







рдФрд░ рдпрд╣ рдПрдХ рдкреНрд░рдЪрд╛рд░рдХ рдХреА рддрд░рд╣ рдХреИрд╕реЗ рд╢рд╛рдВрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ! рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рдХрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реНрддрд░ рдкрд░! рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдХрдм рд╕реЗ рдпрд╣ рд▓реЗрдЦ рдХрд╛ рд╕рд╛рд░ рдирд╣реАрдВ рд╣реИ; рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рдареАрдХ рд╣реИ, рдпрд╛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдИ рд▓рд┐рдЦрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЙрд╕рдХреА рдЪрд╛рд▓реЗрдВ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдмрдВрдж рдирд╣реАрдВ рд╣реИрдВ ред рдПрдХ рдЧрд╛рдЗрдб ред



рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдореЗрдореЛрд░реА



ORMLite рдЗрд╕рдХреА рдореЗрдореЛрд░реА рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рд╕рднреА рдорд╛рд░реНрдХрд░реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ рдЕрд▓рдЧ рд╣реИред рдореБрдЭреЗ рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдкрд╕рдВрдж рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдлрд╛рдпрджреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ:





рдпрд╣рд╛рдБ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдХреНрд░рдорд╢рдГ @DatabaseTable



рдФрд░ @DatabaseField



рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╢рд╛рдВрддрд┐ рд╕реЗ, рдпрд╛, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:



 private void saveRepositories(List<Repository> repositories) throws SQLException { Dao<User, ?> userDao = getDbHelper().getDao(User.class); Dao<Repository, ?> repositoryDao = getDbHelper().getDao(Repository.class); for (Repository repository : repositories) { userDao.createOrUpdate(repository.getOwner()); repositoryDao.createOrUpdate(repository); } }
      
      







рдкреБрдирд╢реНрдЪ: рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдмрдХрд┐ FunLib URI рджреНрд╡рд╛рд░рд╛ рд▓реЛрдбрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ ... рд╣рд╛рдБ, рдФрд░ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рд╣реИ! рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЦреИрд░, рдпрд╛ рд░реБрдХреЛ рдЬрдм рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: рдкреА



рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рджрд┐рдорд╛рдЧ



рдЗрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЙрдкрдХрд░рдг рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдиреМрдХрд░реА рдХрддрд╛рд░ рдХрд╣рд╛ рдЧрдпрд╛ред рд╣рдордиреЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рдИ? рд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдореБрдЭреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рдереА =) рд╣рд╛рдВ, рдФрд░ рдкреНрд░рдХрдЯ рд╕рд╛рдл рд░рд╣рддрд╛ рд╣реИред рдФрд░, рдЬреЛ рдХрдо рдорд╣рддреНрд╡ рдХрд╛ рд╣реИ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрд╛рдлреА рд╣рдж рддрдХ рдмрдбрд╝реЗ рдХрд░реАрдиреЗ рд╕реЗ рд╣рдорд╛рд░реЗ рд╕реЗрдВрдЯреНрд░рд▓ рдирд░реНрд╡рд╕ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдлрдирд▓рд┐рдм рдФрд░ рдореИрдВ рдмреИрда рдЧрдП, рд╕реЛрдЪрд╛, рдФрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЕрдпреНрдпреВрдм, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрде рдЯреАрдо рд╣рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдмрд╣реБрдд рд░рд╛рдХреНрд╖рд╕реА рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдмрдЪреНрдЪреЗ рдХреЛ рдХреЛрдИ рднреА рдЖрдЬреНрдЮрд╛ рджреЗрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ред рдЦреИрд░, рдпрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, FunJob



рдирд╛рдо рд╕реЗ рдПрдХ рдореВрдВрдЧрдлрд▓реА рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬрд┐рд╕реЗ рд╣рдо рдХреЗрд╡рд▓ public abstract T doJob() throws Throwable



рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ public abstract T doJob() throws Throwable



ред



рдХрд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рдЪреЗрддрд╛рд╡рдиреА! рд░рд╛рдХреНрд╖рд╕ рдЦрддрд░рдирд╛рдХ рд╣реИ! рдХреЗрд╡рд▓ рд╣рддрд╛рд╢ рд╕рд╛рд╣рд╕реА рдХреЛ рджреЗрдЦреЛ!
 public class SearchJob extends FunJob<List<Repository>> { private String mQuery; public SearchJob(int id, String query) { super(id); mQuery = query; } @Override public List<Repository> doJob() throws Throwable { SearchResult searchResult = ((GithubApi) getApi()).search(mQuery); List<Repository> repositories = searchResult.getRepositories(); return repositories; } }
      
      









рдХреЗрдВрджреНрд░реАрдп рддрдВрддреНрд░рд┐рдХрд╛ рддрдВрддреНрд░ рдпрд╛ рдмрд╕ DI



рдбреЗрдЯрд╛рдмреЗрд╕, рдЗрдВрдЯрд░рдиреЗрдЯ, рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдорд╕реНрддрд┐рд╖реНрдХ рдФрд░ рд░реЛрдмреЛрдЯ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╡рд╛рдкрд╕ рднреЗрдЬрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдбреИрдЧрд░ рдирд╛рдордХ рдПрдХ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рджрд┐рдорд╛рдЧ рдЬреЙрдм рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдЬрдм рдЬреЙрдм рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ! рдЗрд╕рд▓рд┐рдП, FunJob, рдЬрдм рдпрд╣ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕, рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ! рдЖрдЦрд┐рд░рдХрд╛рд░, рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рд╢рд░реАрд░ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ!



рдФрд░ рдЯреАрдо рдХреЛ рдорд╕реНрддрд┐рд╖реНрдХ рд╕реЗ рд╢рд░реАрд░ рддрдХ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, EvenBus рдирд╛рдордХ рдПрдХ рдЪреАрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВ рдУрдЯреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди, рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░рдг рд╕реЗ, рдлрдирд▓рд┐рдм рдиреЗ рдЗрд╕реЗ рдирд╛рдкрд╕рдВрдж рдХрд┐рдпрд╛, рдФрд░ рдореИрдВрдиреЗ рдЬрд▓реНрджреА рд╕реЗ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдЦреИрд░, рдХреБрдЫ рднреА рдирд╣реАрдВ - EventBus рднреА рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдореБрдХрд╛рдмрд▓рд╛! рд╢рд░реАрд░ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рдордп рдкрд░ рд╕рд╣реА рдЖрдЬреНрдЮрд╛ рдорд┐рд▓рддреА рд╣реИ!



рд░реЗрдбреА рд╕реНрдЯреЗрдбреА рдЧреЛ!



рдЗрд╕ рдкрд░, рдЬрдмрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдкрдбрд╝рд╛рд╡ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрдкрдиреА рдХрд╣рд╛рдиреА рдкреВрд░реА рдХреА рдФрд░ рдЖрдк рд╕реЗ рдПрдХ рдлрд┐рдЯрдмреИрдХ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЕрдкрдиреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред



рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлрдирд▓рд┐рдм рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП - рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:







рдЙрдкрд╕рдВрд╣рд╛рд░



рд╢рд╛рдпрдж рд▓реЛрдбрд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реЛрдЪреЗрдВрдЧреЗ рдХрд┐ рдореИрдВ рдЖрдЦрд┐рд░рдХрд╛рд░ ContentProvider рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдХреНрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдореИрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рддрд╛рд╣рдд рдирд╣реАрдВред рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╣рддреА рд╣реИ : рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореЗрд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдореБрдЭреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдХреЛрдИ рдЖрд╡реЗрджрди рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗред рдФрд░ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдореБрдЭ рдкрд░ рдЯрдорд╛рдЯрд░ рдордд рдлреЗрдВрдХреЛ! рд╣рдо рд╕рднреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред



рдпрд╣ рднреА рджреБрдЦрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдлрдирдЬреЙрдм рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдЖрдИрдбреА рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ - рдпрд╣ рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рдПрдХ рдФрд░ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдЗрд▓рд╛рдЬ рдмрди рдЬрд╛рдПрдЧрд╛!



рдЬреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдВрдХ рд╕реЗ рдЪреВрдХ рдЧрдпрд╛, рдкрдХрдбрд╝: https://github.com/senneco/FunLib



рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдореБрдЭреЗ рдорд┐рд▓реЗрдВ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪреЗрдВ: рдбреА



All Articles