Habr├й рд╕реНрд╡рд┐рдВрдЧ рдкрд░ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред "рд╕реНрд╡рд┐рдВрдЧ" рдХреА
рдЦреЛрдЬ рдпрд╛ рддреЛ рддрдЯрд╕реНрде рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрджрд░реНрдн рджреЗрддреА рд╣реИред рдпрд╣рд╛рдБ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реИрдВ:
- "рдЬрд╛рд╡рд╛ рдПрдкреНрд▓реЗрдЯреНрд╕ (рд╕реНрд╡рд┐рдВрдЧ рдирд╛рдордХ рдПрдХ рдШрд╛рддрдХ рдмреАрдорд╛рд░реА рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд)"
- "рдШреБрдорд╛рдУ, рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рдпреВрдЖрдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдирд╣реАрдВ рд╣реИ"
- "рд╕реНрд╡рд┐рдВрдЧ рдмрд╣реБрдд рднрдпрд╛рдирдХ рдерд╛"
рдореИрдВ рдпрд╣ рдвреЛрдВрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд╕реНрд╡рд┐рдВрдЧ рдПрдХ рдЖрджрд░реНрд╢ рд╣реИред рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЙрди рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛ред
рдХреНрдпреЛрдВ рдЭреВрд▓реЗ
рдореИрдВ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд░реБрдХ-рд░реБрдХ рдХрд░ рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рд╢рд╛рдо рдХреЛред рдореИрдВ рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рд╕рдореВрд╣ рд╕рдВрд░рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ
рджреГрд╢реНрдп рд╡реЙрдЯрд░рдорд╛рд░реНрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ 2011 рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг рдерд╛ред рдореИрдВ рдореИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЛрд░реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЪрд╛рдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдерд╛ред
2011 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд┐рдХрд╛рд╕ рдпреВрдЖрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕ рд░рд╛рдЬреНрдп рдореЗрдВ рдереЗ:
- QML рд╕рднреА рдмрдЧ рдореЗрдВ рдерд╛: рдШрдЯрдХреЛрдВ рдХреЗ рддрд╣рдд рдореЗрдиреВ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдбреЗрдореЛ рдЧрд┐рд░ рдЧрдпрд╛, QtCreator рдореЗрдВ рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдерд╛ред рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗрд╡рд▓ Qt5 рдЕрдВрддрд┐рдо рдЧрд┐рд░рд╛рд╡рдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
- рдХреНрдпреВрдЯреА рдлрд┐рдЯ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ "рджреЗрд╢реА" рдШрдЯрдХреЛрдВ рдкрд░ рдерд╛, рдФрд░ рдЕрдХреНрд╕рд░ рдЗрд╕реЗ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
- рдЬреВрд╕ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдерд╛, рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдирд╣реАрдВ рдереА рдФрд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реБрдИ рдереАред рдпрд╣ рдЙрдЪрд┐рдд рдзрди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИред C ++ рдиреЗ рдореБрдЭреЗ рдбрд░рд╛ рджрд┐рдпрд╛ред рдпрд╣ рдПрдХ рдЕрджреНрднреБрдд рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реЛрд╢рд┐рдпрд╛рд░ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмреЛрд▓реА рдЬрд╛рддреА рд╣реИред рдореЗрд░реЗ рдЫреЛрдЯреЗ рд╕реЗ рдЕрдиреБрднрд╡ рдФрд░ рдХрд╛рд░реНрдп рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, C ++ рдЬрдЯрд┐рд▓рддрд╛ рдПрдХ рд╣рд▓рдЪрд▓ рд╣реИред рд╕рд╛рде рд╣реА, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ Xcode C ++ рдХреЛ рд░рд┐рдлрд▓реЗрдХреНрдЯрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред
- Adobe Air рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
- рдореЛрдиреЛ + рдЬреАрдЯреАрдХреЗ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрдпреЛрдЬрди рдореЗрд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рд╕рдордп, рдореИрдВ GTK рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЙрдЯрдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЬрд╛рдо рд╕реЗ рдбрд░ рдЧрдпрд╛ рдерд╛ред рдореЛрдиреЛрдбреЗрд╡рд▓рдк рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдЕрдм рддрдХ рддрдп рдирд╣реАрдВ рд╣реИред
- JavaFX рдореИрдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛ ред
- SWT рд╕реНрд╡рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдЕрдЪреНрдЫрд╛ рд╣реИред рдореИрдВрдиреЗ SWT рдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рдЖрдЦрд┐рд░реА рдмрд╛рд░ рджреЗрдЦрд╛ рдерд╛ред рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рд╣реА рд╡реНрдпрддреАрдд рд╣реЛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдмрдЧ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдЯреВрд▓ рдкрд░ рдКрдВрдЪрд╛рдИ рдореЗрдВ рдмрдЯрди "рдлреНрд▓реЛрдЯ рдХрд┐рдП рдЧрдП")ред
рдЙрд╕ рд╕рдордп, рдЬрд╛рд╡рд╛ рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛, рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдореВрд▓ рд╕реНрд╡рд░реВрдк рдФрд░ рдЕрдиреБрднрд╡ рдерд╛, рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдЬреЗрдЖрд░рдИ рдХрд╛ рд╡рдЬрди рдХреЗрд╡рд▓ 12 рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдерд╛ред рдореБрдЭреЗ рд╕рдлрд▓рддрд╛ рдХрд╛ рдкреВрд░рд╛ рднрд░реЛрд╕рд╛ рдерд╛ред рдирддреАрдЬрддрди, 2 рдпрд╛ 3 рдорд╣реАрдиреЗ рдХреЗ рдХрд╛рдо рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рд╕реНрд╡рд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ред
рдЖрдЬ рддрдХ, QML рдФрд░ JavaFX рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рддрдп рдХреА рдЧрдИ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЪрд░рдг рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдХреНрдпреВрдЯреА рдбрд┐рдЧрд┐рдпрд╛ рдХреЗ рд╡рд┐рдВрдЧ рдХреЗ рддрд╣рдд рдЪрд▓рд╛ рдЧрдпрд╛ред рдЖрдИрдлреЛрди рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдмреАрдЯрд╛ рд░рд┐рд▓реАрдЬрд╝ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрдЧреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИредJavaFX рдЗрд╕ рд╕рд╛рд▓ рдлрд░рд╡рд░реА рдореЗрдВ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрди рдЧрдпрд╛ред OpenJDK рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рд╕рдВрдЧрддрддрд╛ JDK 9 рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИред 2014 рдХреЗ рдЖрд░рдВрдн рдореЗрдВ 8 рд╡реЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд░рд┐рд▓реАрдЬрд╝ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИредрдУрд╣ рдЕрдЪреНрдЫрд╛
рдореИрдВ рдЕрдЪреНрдЫреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ред рдЕрдЪрд╛рдирдХ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рднреА, рд╕реНрд╡рд┐рдВрдЧ-рдирдлрд░рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд░ рд░рд╣рд╛ рд╣реВрдВ! "
рд╕рднреА рдкреНрд░рддрд┐рдкрд╛рджрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░-рддреНрд╡рд░рд┐рдд рд╣реИред рдХрд┐рд╕реА рднреА рд╕реНрд╡рд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ GPU рдкрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдХреБрдЫ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдирд┐рдореЗрд╢рди рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдЬрдм рдЖрд╡реЗрджрди рдлреБрд▓-рд╕реНрдХреНрд░реАрди рд╣реИ рдпрд╛ 24 '' рдореЙрдирд┐рдЯрд░ рдкрд░ рддреИрдирд╛рдд рд╣реИред
MVCред рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдВрдЧ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп, рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдПрдХ рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдпрд╣ рдПрдХ рдореМрдЬреВрджрд╛ рдШрдЯрдХ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд▓рдЪреАрд▓рд╛ рд╣реИред
рдЬрд╛рд╡рд╛ рдХреЛрдб рдкреНрд░рдмрдВрдзрд┐рдд рд╣реИред рдЖрдк рдЙрди рд╕рдВрднрд╛рд╡рд┐рдд рдмрдЧреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ C ++ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП "рдЙрдкрд▓рдмреНрдз" рд╣реИрдВред рдкрд╣реБрдБрдЪ рдЙрд▓реНрд▓рдВрдШрди рдХрд╛ рдЬреЛрдЦрд┐рдо рдХрдо рд╕реЗ рдХрдо рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреНрдп рдмрдЧ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд▓реАрдХред
рдорд╣рд╛рди рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдгред рдЧреНрд░рд╣рдг, Intellij IDEA, NetBeans - рдЪреБрдирд╛рд╡ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИред рд╣рд░ рдЬрдЧрд╣ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ, рдХреЛрдб рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдСрдЯреЛ-рдХрдореНрдкреНрд▓реАрдЯ, рдпреВрдирд┐рдЯ-рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдкреЛрд░реНрдЯ,
рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рд▓реЗрдЖрдЙрдЯрдореИрди, рджреЗрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рддрд╛рд░, рд╡реЗрдм - рдЖрдк рд╕рдм рдХреБрдЫ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдпрд╣ рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЯреНрд░рдореНрдк рдХрд╛рд░реНрдб рдЬрд╛рд╡рд╛ рд╣реИред
рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдвреЗрд░ рд╕рд╛рд░реЗ рдЬрд╡рд╛рдмред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреВрдЖрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рдкрд░
рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛
рдкреНрд░рддрд┐рд╢рдд рд╣реИ ред

рдмрд╕ StackOverflow рдкрд░ рд╣рд░ рд╕реМрд╡реЗрдВ рд╕рд╡рд╛рд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрд╡рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкрд╣рд▓реЗ рд╣реА рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИрдВред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдПрдХ-рдкрд░-рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рде рдЖрдк рдирд╣реАрдВ рд░рд╣реЗрдВрдЧреЗред
рдЕрд░реЗ рдмреБрд░рд╛ рдорд╛рди рдЧрдпрд╛
рдкрд┐рдЫрд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдПрдХ рдорд┐рдард╛рдИ рдкреНрд░реЗрд╕ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рдХреА рддрд░рд╣ рд╣реИред рдареАрдХред рдпрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЧрдВрднреАрд░ рдХреАрдбрд╝реЗ рдареАрдХ рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред File.exists JDK7 рдХреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рдж рд╕реЗ
рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрднреА рднреА рдХреЛрдИ рдлрд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдмрдЧ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддреЛ рдЖрдк рд╡рд░реНрд╖реЛрдВ рддрдХ рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдореВрд▓ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рд╕реНрдерд┐рддрд┐ рдФрд░ рдЦрд░рд╛рдм рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдореЛрдбрд▓ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, OpenFileDialog рдХреЛ рдЦреЛрд▓рдирд╛) рдХреБрдЫ рдХрдВрдкреНрдпреВрдЯрд░реЛрдВ рдкрд░ рдЬрдорд╛ рд╣реЛрддрд╛ рд╣реИред рдЬрдмрдХрд┐ Java Native Foundation рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ StackOverflow рдкрд░ рдЗрдирд╛рдо рдореБрдЭреЗ рдорджрдж рдирд╣реАрдВ рдХреА :-)
File.exists рдХреЗ рд╕рд╛рде рдмрдЧ рдХреЛ java.nio рд╕реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдкрддреНрддреЗрджрд╛рд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЖрдкрдХреЛ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
тАУDfile.encoding=UTF-8
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ- File.exists рдХреЗ рдмрдЬрд╛рдп рд╣рдо
Files.exists(Paths.get(fileName))
- File.listFiles рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
try (DirectoryStream<Path> ds = Files.newDirectoryStream(folder)) { for (Path file : ds) {
рдпрд╛ рдЗрд╕ рдмрдЧ рдХреЛ рд╕реНрд╡рдпрдВ рдареАрдХ рдХрд░реЗрдВ рдФрд░ рдмреБрдХрдорд╛рд░реНрдХ рдХреЛ рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдзрдХреЗрд▓реЗрдВред
рд╕реНрд╡рд┐рдВрдЧ рдХреЗрд╡рд▓ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рд┐рдд рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди VMware, рд╕рдорд╛рдирддрд╛рдПрдВ рдпрд╛ рджреВрд░рд╕реНрде рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ SWT рдХреА рдУрд░ рджреЗрдЦреЗрдВред
рдореИрдХ рдХреЗ рд▓рд┐рдП 32-рдмрд┐рдЯ рдмрд┐рд▓реНрдб рдирд╣реАрдВ рд╣реИрдВред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд┐рд▓реНрдб рдХреЗрд╡рд▓ 64 рдмрд┐рдЯреНрд╕ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕ рдлреИрд╕рд▓реЗ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдмрдЧреЛрдВ рдХреА рдмрд╛рдд рд╣реИред
рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рд╣реЗрдирд░реА рдЧреЛрдореЗрдЬрд╝ рдиреЗ 32-рдмрд┐рдЯ рдФрд░ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдмрд┐рд▓реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ред рд░реЗрдбреА-рдореЗрдб рдмрд┐рд▓реНрдб рдХреЛ рдЕрдкрдиреЗ рдкреЗрдЬ рд╕реЗ code.google.com рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рдЕрдлрд╕реЛрд╕ рдХреЗ рд▓рд┐рдП, рд╕рдордп рдХреА рдХрдореА рдФрд░ рдирдП рдХрд╛рдо рдиреЗ рд╣реЗрдирд░реА рдХреЛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╣рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ред рдЕрд▓рд╡рд┐рджрд╛ рдХрд╣рддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЛрдВрдиреЗ GitHub рдкрд░ рдЕрдкрдиреА рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЛрд╕реНрдЯ рдХреА:
https://github.com/hgomez/obuildfactoryрдЙрдирдХреА рдорджрдж рд╕реЗ, рдЖрдк рдореИрдХ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП OpenJDK рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд╣рд╛рди, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред
рдЗрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдХ рдХреЗ рд▓рд┐рдП 32-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЗрдбреАрдХреЗ рдХреЗ рдЕрдВрджрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдореИрдХ рдХреЗ рд▓рд┐рдП 64-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдВрдЬреА рдмрджрд▓реЗрдВ рдФрд░ рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рд╣реЗрдирд░реА рдЧреЛрдореЗрдЬрд╝ рдиреЗ 32-рдмрд┐рдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИред
рд╡рд┐рддрд░рдг рдореЗрдВ JRE рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Oracle рдХреЗ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреА рд░рд╛рдп: "рд▓рдХреНрд╖реНрдп рдордВрдЪ рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓ JRE рдХреЗ рд╕рд╛рде рд╕реНрд╡рд╕рдВрдкреВрд░реНрдг рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдПрдХ рдЕрдзрд┐рдХ рд╕рдлрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рддрд░рдг рдореЙрдбрд▓ рд╣реИ" (
рд╕реНрд░реЛрдд )ред рдЗрд╕ рдирд┐рд░реНрдгрдп рдХрд╛ рд╕рдмрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рдПрдкреНрд▓реЗрдЯреНрд╕ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВ: рдЬрд╛рд╡рд╛ рдиреЗ рдлреНрд▓реИрд╢ рд╕реЗ рдЫрд▓рдиреА рдмреИрдирд░ рдХреЛ рдЕрдкрдирд╛рдпрд╛ред
рдпрд╣ рдкреНрд░рддрд┐рдмрдВрдз Apple рджреНрд╡рд╛рд░рд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдордЬрдмреВрддреА рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕рдиреЗ Mac OS 10.7 Lion рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИред рдирдП рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╡реЗ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред
JRE 7 рдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ 100 рдПрдордмреА рд╣реИред рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд▓рдЧрднрдЧ 50 рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдкрдбреЗрдЯ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдЖрд░рдИ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рд╕реВрдЬрди рдХреЗ рд╡рд┐рддрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рднреА рдмрдлрд╝рд░рдореИрдбрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдмрдлрд╝рд░рдореИрдбрдо рдХреЗ рд▓рд┐рдПред TYPE_INT_ *ред рдЗрд╕рд▓рд┐рдП, JDK7 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, TYPE_4BYTE *, TYPE_3BYTE рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕рдВрдЧрдд рд╣реИред
рдмрдлрд╝рд░рдореИрдбрдо рд░реИрд╕реНрдЯрд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп, рддрд╕реНрд╡реАрд░ GPU рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреАрдВрдЪреА рдЬрд╛ рд░рд╣реА рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдмрджрд▓рддрд╛ рд╣реИ, рдХреЛрдИ "рд╕рдорд╛рдкреНрдд рдкрд░рд┐рд╡рд░реНрддрди" рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдХрдм рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред
рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╡реЙрдЯрд░рдорд╛рд░реНрдХ рдореЗрдВ, рдореИрдВрдиреЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд┐рдХреНрд╕рд▓ рдХреЛ рдмрдлрд╝рд░рдбреИрдореЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдмрджрд▓рдирд╛ рдмрд╣реБрдд рдзреАрдорд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╕реАрдзреЗ рдЫрд╡рд┐ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдмрдлрд░ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЬреИрд╕реЗ рд╣реА рдореИрдВрдиреЗ рдЧреЗрдЯрдбрд╛рдЯрд╛ () рдХреЛ рд░рд╛рд╕реНрдЯрд░ рдкрд░ рдмреБрд▓рд╛рдпрд╛, рдореЗрд░реА рд╕рднреА рддрд╕реНрд╡реАрд░реЗрдВ рддреЗрдЬреА рд╕реЗ рдмрдВрдж рд╣реЛ рдЧрдИрдВред DataBufferInt рдХреЗ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдлрд╡рд╛рд╣ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкрд╛рдпрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрд╛:
import java.awt.*; import java.awt.image.*; import java.lang.reflect.Field; import sun.awt.image.SunWritableRaster; import sun.java2d.StateTrackableDelegate;
рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
DataBufferInt dataBuffer = (DataBufferInt)bufferedImage.getRaster().getDataBuffer(); int[] data = AcceleratedImage.getDataBuffer(dataBuffer);
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИредрдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрдиреАрдореЗрд╢рди рдФрд░ рдЕрд░реНрдз-рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдирд╣реАрдВ рд╣реИред Javax.swing.Timer рдСрдмреНрдЬреЗрдХреНрдЯ рджреЛ рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИ:
- рдЖрдк рдШрдЯрдХ рдПрдирд┐рдореЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
- рд╡рд░реНрдЧ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг, рдЗрд╕реЗ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд░рдирд╛ред
рдПрдХ
рдЯрд╛рдЗрдорд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдПрдирд┐рдореЗрд╢рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред рдПрдиреАрдореЗрд╢рди рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
Animator viewAnimator = new Animator.Builder() .setDuration(duration, TimeUnit.MILLISECONDS)
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдиреАрдореЗрд╢рди рд╕реНрдерд┐рддрд┐ рдФрд░ рдЕрд░реНрдз-рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╣реИред рдпрджрд┐ рд╕реНрд╡рд┐рдВрдЧ рдареАрдХ рд╣реИ, рддреЛ рдорд╛рдирдХ рдШрдЯрдХ рдЕрд░реНрдз-рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЗрдВрдЬрди рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдореЗрдВ рдХрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рдкрд╛рд╕ getAlpha / setAlpha рдЧреБрдг рдирд╣реАрдВ рд╣реИред
рдЧреЗрдЯрдХреАрдкрд░ рдХреЗ рдХрд╛рд░рдг рдорд╛рдЙрдВрдЯреЗрди рд▓рд╛рдпрди рдореЗрдВ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ $ 99 / рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП рдореИрдХ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрджрд▓реЗ рдореЗрдВ, Apple рдЖрдкрдХреЛ рдХреЛрдб рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЖрдк рдЗрд╕ рддрд░рд╣ рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдПрдХ рдмрдВрдбрд▓ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
codesign тАУs тАЬDeveloper IDтАЭ тАУf тАЬpath-to-my-app.appтАЭ
рдХреБрд▓ рдореЗрдВ
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕реНрд╡рд┐рдВрдЧ рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ рдордВрдЪ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреАрдбрд╝реЗ рдЦреБрд▓реЗ рд░рд╣рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдЙрдирдХреЗ рд╕реБрдзрд╛рд░реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИрдВред рдПрдХ рдХреЛ рдпрд╣ рдЕрд╣рд╕рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдиреНрдп рд╕рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред
рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╕рдЪ рд╣реИ рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рджреБрдЦ рд╣реЛрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╕реНрд╡рд┐рдВрдЧ рдореЗрдВ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдирд╛ рддреНрд╡рд░рд┐рдд, рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдмрд╣реБрдд рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рддреИрдпрд╛рд░ рдФрд░ рдирд┐: рд╢реБрд▓реНрдХ рдХреЛрдб рд╣реИред
рдлрд┐рд▓рд╣рд╛рд▓, рдореБрдЭреЗ рдЕрднреА рднреА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдУрд░реЗрдХрд▓ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛ред
рдЕрджреНрдпрддрди: рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреНрдпреВрдЯреА рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рдЕрдиреБрдХреВрд▓рди рд╕рдВрднрд╡ рд╣реИ:
рд╕рд┐рд▓рд╡рдВрд╕реНрдХреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж
рдЕрджреНрдпрддрди: рдПрдХ
Skyggedans рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдПрдпрд░ рдиреЗ рдмрд╣реБ-рдереНрд░реЗрдбрд┐рдВрдЧ рд╕рдорд░реНрдерди
рдЬреЛрдбрд╝рд╛ рд╣реИ ред рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд SWF рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдХреАрдордд рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдк рд╕рдВрдЪрд╛рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред