Gizem Malçok

Turkish documentation of the Dependency Management file has been prepared..

@@ -19,24 +19,24 @@ @@ -19,24 +19,24 @@
19 - [How bindings work under the hood](#how-bindings-work-under-the-hood) 19 - [How bindings work under the hood](#how-bindings-work-under-the-hood)
20 - [Notes](#notes) 20 - [Notes](#notes)
21 21
22 -Get has a simple and powerful dependency manager that allows you to retrieve the same class as your Bloc or Controller with just 1 lines of code, no Provider context, no inheritedWidget: 22 +Get, yalnızca 1 satır kodla, Provider context'i olmadan, inheritedWidget olmadan Bloc veya Controller ile aynı sınıfı almanızı sağlayan basit ve güçlü bir dependency manager'a (bağımlılık yöneticisine) sahiptir:
23 23
24 ```dart 24 ```dart
25 Controller controller = Get.put(Controller()); // Rather Controller controller = Controller(); 25 Controller controller = Get.put(Controller()); // Rather Controller controller = Controller();
26 ``` 26 ```
27 27
28 -Instead of instantiating your class within the class you are using, you are instantiating it within the Get instance, which will make it available throughout your App.  
29 -So you can use your controller (or Bloc class) normally 28 +Sınıfınızı kullandığınız sınıf içinde somutlaştırmak yerine, onu uygulamanız genelinde kullanılabilir hale getirecek olan Get örneğinde somutlaştırıyorsunuz.
  29 +Böylece denetleyicinizi (veya Bloc sınıfını) normal şekilde kullanabilirsiniz.
30 30
31 -- Note: If you are using Get's State Manager, pay more attention to the [Bindings](#bindings) api, which will make easier to connect your view to your controller.  
32 -- Note²: Get dependency management is decloupled from other parts of the package, so if for example your app is already using a state manager (any one, it doesn't matter), you don't need to change that, you can use this dependency injection manager with no problems at all 31 +- Not: Get's State Manager kullanıyorsanız, view'e controller'ı bağlamayı kolaylaştıracak olan [Bindings](#bindings) API'sine daha fazla dikkat edin.
  32 +- Not²: Get dependency management (bağımlılık yönetimi) paketin diğer bölümlerinden ayrılmıştır, bu nedenle örneğin uygulamanız zaten bir state manager (durum yöneticisi) kullanıyorsa (herhangi biri, önemli değil), bunu değiştirmeniz gerekmez, dependency injection (bağımlılık enjeksiyonunu) kullanabilirsiniz.
33 33
34 ## Instancing methods 34 ## Instancing methods
35 -The methods and it's configurable parameters are: 35 +Metodlar ve configurable parameters (yapılandırılabilir parametreleri) şunlardır:
36 36
37 ### Get.put() 37 ### Get.put()
38 38
39 -The most common way of inserting a dependency. Good for the controllers of your views for example. 39 +Dependency (bağımlılık) eklemenin en yaygın yolu. Örneğin;
40 40
41 ```dart 41 ```dart
42 Get.put<SomeClass>(SomeClass()); 42 Get.put<SomeClass>(SomeClass());
@@ -44,46 +44,47 @@ Get.put<LoginController>(LoginController(), permanent: true); @@ -44,46 +44,47 @@ Get.put<LoginController>(LoginController(), permanent: true);
44 Get.put<ListItemController>(ListItemController, tag: "some unique string"); 44 Get.put<ListItemController>(ListItemController, tag: "some unique string");
45 ``` 45 ```
46 46
47 -This is all options you can set when using put: 47 +Put kullanırken ayarlayabileceğiniz tüm seçenekler şunlardır:
48 ```dart 48 ```dart
49 Get.put<S>( 49 Get.put<S>(
50 - // mandatory: the class that you want to get to save, like a controller or anything  
51 - // note: "S" means that it can be a class of any type 50 + // Zorunlu: Controller veya herhangi bir şey gibi kaydetmek istediğiniz sınıf
  51 + // not: "S", herhangi bir türde bir sınıf olabileceği anlamına gelir
52 S dependency 52 S dependency
53 53
54 - // optional: this is for when you want multiple classess that are of the same type  
55 - // since you normally get a class by using Get.find<Controller>(),  
56 - // you need to use tag to tell which instance you need  
57 - // must be unique string 54 + // isteğe bağlı: bu, aynı türden birden çok sınıf içindir
  55 + // normalde Get.find<Controller>() kullanarak bir sınıf aldığınız için,
  56 + // hangi örneğe ihtiyacınız olduğunu söylemek için "tag" kullanmanız gerekir
  57 + // benzersiz dize olmalıdır
58 String tag, 58 String tag,
59 59
60 - // optional: by default, get will dispose instances after they are not used anymore (example,  
61 - // the controller of a view that is closed), but you might need that the instance  
62 - // to be kept there throughout the entire app, like an instance of sharedPreferences or something  
63 - // so you use this  
64 - // defaults to false 60 + // isteğe bağlı: varsayılan olarak, get artık kullanılmadıktan sonra örnekleri elden çıkarır (örneğin,
  61 + // gizli bir view'in controller'ı), ancak instance'a ihtiyacınız olabilir
  62 + // tüm uygulama boyunca orada tutulacak, Shared Preferences örneği veya başka bir şey gibi
  63 + // yani bunu kullanıyorsun
  64 + // varsayılan olarak false
65 bool permanent = false, 65 bool permanent = false,
66 66
67 - // optional: allows you after using an abstract class in a test, replace it with another one and follow the test.  
68 - // defaults to false 67 + // isteğe bağlı: bir testte abstract(soyut) bir sınıf kullandıktan sonra, onu başka bir sınıfla değiştirmenize ve testi takip etmenize olanak tanır.
  68 + // varsayılan olarak false
69 bool overrideAbstract = false, 69 bool overrideAbstract = false,
70 70
71 // optional: allows you to create the dependency using function instead of the dependency itself. 71 // optional: allows you to create the dependency using function instead of the dependency itself.
72 - // this one is not commonly used 72 + //isteğe bağlı: dependency'nin(bağımlılığın) kendisi yerine fonksiyonu kullanarak dependency(bağımlılık) oluşturmanıza olanak tanır.
  73 + //bu yaygın olarak kullanılmaz
73 InstanceBuilderCallback<S> builder, 74 InstanceBuilderCallback<S> builder,
74 ) 75 )
75 ``` 76 ```
76 77
77 ### Get.lazyPut 78 ### Get.lazyPut
78 -It is possible to lazyLoad a dependency so that it will be instantiated only when is used. Very useful for computational expensive classes or if you want to instantiate several classes in just one place (like in a Bindings class) and you know you will not gonna use that class at that time. 79 +Bir bağımlılığı lazyLoad ile yalnızca kullanıldığında somutlaştırılacak şekilde yüklemek mümkündür. Hesaplamalı expensive sınıflar için veya birkaç sınıfı tek bir yerde başlatmak istiyorsanız (Bindings sınıfında olduğu gibi) çok kullanışlıdır ve o zaman o sınıfı kullanmayacağınızı bilirsiniz.
79 80
80 ```dart 81 ```dart
81 -/// ApiMock will only be called when someone uses Get.find<ApiMock> for the first time 82 +/// ApiMock yalnızca Get.find<ApiMock>'u ilk kez kullandığında çağrılacak
82 Get.lazyPut<ApiMock>(() => ApiMock()); 83 Get.lazyPut<ApiMock>(() => ApiMock());
83 84
84 Get.lazyPut<FirebaseAuth>( 85 Get.lazyPut<FirebaseAuth>(
85 () { 86 () {
86 - // ... some logic if needed 87 + // ... gerekirse biraz mantık
87 return FirebaseAuth(); 88 return FirebaseAuth();
88 }, 89 },
89 tag: Math.random().toString(), 90 tag: Math.random().toString(),
@@ -93,27 +94,27 @@ Get.lazyPut<FirebaseAuth>( @@ -93,27 +94,27 @@ Get.lazyPut<FirebaseAuth>(
93 Get.lazyPut<Controller>( () => Controller() ) 94 Get.lazyPut<Controller>( () => Controller() )
94 ``` 95 ```
95 96
96 -This is all options you can set when using lazyPut: 97 +lazyPut'u kullanırken ayarlayabileceğiniz tüm seçenekler şunlardır:
97 ```dart 98 ```dart
98 Get.lazyPut<S>( 99 Get.lazyPut<S>(
99 - // mandatory: a method that will be executed when your class is called for the first time 100 + // zorunlu: sınıfınız ilk kez çağrıldığında yürütülecek bir yöntem
100 InstanceBuilderCallback builder, 101 InstanceBuilderCallback builder,
101 102
102 - // optional: same as Get.put(), it is used for when you want multiple different instance of a same class  
103 - // must be unique 103 + // isteğe bağlı: Get.put() ile aynı, aynı sınıfın birden çok farklı örneğini istediğinizde kullanılır
  104 + // unique olmalı
104 String tag, 105 String tag,
105 106
106 - // optional: It is similar to "permanent", the difference is that the instance is discarded when  
107 - // is not being used, but when it's use is needed again, Get will recreate the instance  
108 - // just the same as "SmartManagement.keepFactory" in the bindings api  
109 - // defaults to false 107 + // isteğe bağlı: "Kalıcı" ile benzerdir, aradaki fark, instance şu durumlarda atılmasıdır.
  108 + // kullanılmıyor, ancak tekrar kullanılması gerektiğinde Get, instance yeniden oluşturacak
  109 + //bindings api'sindeki "SmartManagement.keepFactory" ile aynı
  110 + // varsayılan olarak false
110 bool fenix = false 111 bool fenix = false
111 112
112 ) 113 )
113 ``` 114 ```
114 115
115 ### Get.putAsync 116 ### Get.putAsync
116 -If you want to register an asynchronous instance, you can use `Get.putAsync`: 117 +Eşzamansız bir instance kaydetmek istiyorsanız, `Get.putAsync` kullanabilirsiniz:
117 118
118 ```dart 119 ```dart
119 Get.putAsync<SharedPreferences>(() async { 120 Get.putAsync<SharedPreferences>(() async {
@@ -125,87 +126,87 @@ Get.putAsync<SharedPreferences>(() async { @@ -125,87 +126,87 @@ Get.putAsync<SharedPreferences>(() async {
125 Get.putAsync<YourAsyncClass>( () async => await YourAsyncClass() ) 126 Get.putAsync<YourAsyncClass>( () async => await YourAsyncClass() )
126 ``` 127 ```
127 128
128 -This is all options you can set when using putAsync: 129 +putAsync kullanırken ayarlayabileceğiniz tüm seçenekler şunlardır:
129 ```dart 130 ```dart
130 Get.putAsync<S>( 131 Get.putAsync<S>(
131 132
132 - // mandatory: an async method that will be executed to instantiate your class 133 + // zorunlu: sınıfınızın instance'ını oluşturmak için yürütülecek bir asenkron metod
133 AsyncInstanceBuilderCallback<S> builder, 134 AsyncInstanceBuilderCallback<S> builder,
134 135
135 - // optional: same as Get.put(), it is used for when you want multiple different instance of a same class  
136 - // must be unique 136 + //isteğe bağlı: Get.put() ile aynı, aynı sınıfın birden çok farklı örneğini istediğinizde kullanılır
  137 + // unique olmalı
137 String tag, 138 String tag,
138 139
139 - // optional: same as in Get.put(), used when you need to maintain that instance alive in the entire app  
140 - // defaults to false 140 + // isteğe bağlı: Get.put() ile aynı, bu instance tüm uygulamada canlı tutmanız gerektiğinde kullanılır
  141 + // varsayılan olarak false
141 bool permanent = false 142 bool permanent = false
142 ) 143 )
143 ``` 144 ```
144 145
145 ### Get.create 146 ### Get.create
146 147
147 -This one is tricky. A detailed explanation of what this is and the differences between the other one can be found on [Differences between methods:](#differences-between-methods) section 148 +Bu zor. Bunun ne olduğuna ve diğeri arasındaki farklara ilişkin ayrıntılı bir açıklama, [Differences between methods:](#differences-between-methods) bölümünde bulunabilir.
148 149
149 ```dart 150 ```dart
150 Get.Create<SomeClass>(() => SomeClass()); 151 Get.Create<SomeClass>(() => SomeClass());
151 Get.Create<LoginController>(() => LoginController()); 152 Get.Create<LoginController>(() => LoginController());
152 ``` 153 ```
153 154
154 -This is all options you can set when using create: 155 +Oluştururken ayarlayabileceğiniz tüm seçenekler şunlardır:
155 156
156 ```dart 157 ```dart
157 Get.create<S>( 158 Get.create<S>(
158 - // required: a function that returns a class that will be "fabricated" every  
159 - // time `Get.find()` is called  
160 - // Example: Get.create<YourClass>(() => YourClass()) 159 + // gerekli: her seferinde "fabrikasyon" olacak bir sınıf döndüren bir işlev
  160 + // `Get.find()` çağrılır
  161 + // Örnek: Get.create<YourClass>(() => YourClass())
161 FcBuilderFunc<S> builder, 162 FcBuilderFunc<S> builder,
162 163
163 - // optional: just like Get.put(), but it is used when you need multiple instances  
164 - // of a of a same class  
165 - // Useful in case you have a list that each item need it's own controller  
166 - // needs to be a unique string. Just change from tag to name 164 + // isteğe bağlı: tıpkı Get.put() gibi, ancak birden çok örneğe ihtiyacınız olduğunda kullanılır
  165 + // aynı sınıftan bir
  166 + // Her öğenin kendi denetleyicisine ihtiyaç duyduğu bir listeniz varsa kullanışlıdır
  167 + // benzersiz bir dize olması gerekir.
167 String name, 168 String name,
168 169
169 - // optional: just like int`Get.put()`, it is for when you need to keep the  
170 - // instance alive thoughout the entire app. The difference is in Get.create  
171 - // permanent is true by default 170 + // isteğe bağlı: tıpkı int`Get.put()` gibi,
  171 + // tüm uygulama boyunca canlı örnek. Fark Get.create'de
  172 + // kalıcı, varsayılan olarak doğrudur
172 bool permanent = true 173 bool permanent = true
173 ``` 174 ```
174 175
175 ## Using instantiated methods/classes 176 ## Using instantiated methods/classes
176 177
177 -Imagine that you have navigated through numerous routes, and you need a data that was left behind in your controller, you would need a state manager combined with the Provider or Get_it, correct? Not with Get. You just need to ask Get to "find" for your controller, you don't need any additional dependencies: 178 +Çok sayıda rotada gezindiğinizi ve kontrol cihazınızda geride bırakılan bir veriye ihtiyacınız olduğunu hayal edin, Sağlayıcı veya Get_it ile birleştirilmiş bir durum yöneticisine ihtiyacınız olacak, değil mi? Get ile değil. Denetleyiciniz için "find" seçeneğini sormanız yeterlidir, herhangi bir ek bağımlılığa ihtiyacınız yoktur:
178 179
179 ```dart 180 ```dart
180 final controller = Get.find<Controller>(); 181 final controller = Get.find<Controller>();
181 -// OR 182 +// veya
182 Controller controller = Get.find(); 183 Controller controller = Get.find();
183 184
184 -// Yes, it looks like Magic, Get will find your controller, and will deliver it to you.  
185 -// You can have 1 million controllers instantiated, Get will always give you the right controller. 185 +// Evet, sihir gibi görünüyor, Controller'ı(Denetleyicinizi) bulacak ve size teslim edecek.
  186 +// Instance edilmiş 1 milyon controller'a sahip olabilirsiniz, Get size her zaman doğru controller'ı verecektir.
186 ``` 187 ```
187 188
188 -And then you will be able to recover your controller data that was obtained back there: 189 +Ve sonra orada elde edilen controller ile verilerinizi kurtarabileceksiniz:
189 190
190 ```dart 191 ```dart
191 Text(controller.textFromApi); 192 Text(controller.textFromApi);
192 ``` 193 ```
193 194
194 -Since the returned value is a normal class, you can do anything you want: 195 +Döndürülen değer normal bir sınıf olduğundan, istediğiniz her şeyi yapabilirsiniz:
195 ```dart 196 ```dart
196 int count = Get.find<SharedPreferences>().getInt('counter'); 197 int count = Get.find<SharedPreferences>().getInt('counter');
197 print(count); // out: 12345 198 print(count); // out: 12345
198 ``` 199 ```
199 200
200 -To remove an instance of Get: 201 +Get örneğini kaldırmak için:
201 202
202 ```dart 203 ```dart
203 -Get.delete<Controller>(); //usually you don't need to do this because GetX already delete unused controllers 204 +Get.delete<Controller>(); //genellikle bunu yapmanız gerekmez çünkü GetX kullanılmayan controller'ları(denetleyicileri) zaten siler
204 ``` 205 ```
205 206
206 ## Specifying an alternate instance 207 ## Specifying an alternate instance
207 208
208 -A currently inserted instance can be replaced with a similar or extended class instance by using the `replace` or `lazyReplace` method. This can then be retrieved by using the original class. 209 +Şu anda eklenen bir örnek, `replace` veya `lazyReplace` yöntemi kullanılarak benzer veya genişletilmiş bir sınıf örneğiyle değiştirilebilir. Bu daha sonra özgün sınıf kullanılarak alınabilir.
209 210
210 ```dart 211 ```dart
211 abstract class BaseClass {} 212 abstract class BaseClass {}
@@ -234,44 +235,45 @@ print(instance is OtherClass); //true @@ -234,44 +235,45 @@ print(instance is OtherClass); //true
234 235
235 ## Differences between methods 236 ## Differences between methods
236 237
237 -First, let's of the `fenix` of Get.lazyPut and the `permanent` of the other methods. 238 +İlk olarak Get.lazyPut'un `fenix`i ve diğer yöntemlerin `permanent`'larından bahsedelim.
238 239
239 -The fundamental difference between `permanent` and `fenix` is how you want to store your instances. 240 +`permanent` ve `fenix` arasındaki temel fark, örneklerinizi nasıl depolamak istediğinizdir.
240 241
241 -Reinforcing: by default, GetX deletes instances when they are not in use.  
242 -It means that: If screen 1 has controller 1 and screen 2 has controller 2 and you remove the first route from stack, (like if you use `Get.off()` or `Get.offNamed()`) the controller 1 lost its use so it will be erased. 242 +Güçlendirme: Varsayılan olarak GetX, kullanımda değilken örnekleri siler.
  243 +Bunun anlamı: Ekran 1'de controller 1 varsa ve ekran 2'de controller 2 varsa ve ilk rotayı stackten kaldırırsanız (`Get.off()` veya `Get.offNamed()` kullanıyorsanız) denetleyici 1 kaybolur kullanımı silinecektir.
243 244
244 -But if you want to opt for using `permanent:true`, then the controller will not be lost in this transition - which is very useful for services that you want to keep alive throughout the entire application. 245 +Ancak `permanent:true` kullanmayı tercih etmek istiyorsanız, bu geçişte controller kaybolmaz - bu, tüm uygulama boyunca canlı tutmak istediğiniz hizmetler için çok yararlıdır.
245 246
246 -`fenix` in the other hand is for services that you don't worry in losing between screen changes, but when you need that service, you expect that it is alive. So basically, it will dispose the unused controller/service/class, but when you need it, it will "recreate from the ashes" a new instance. 247 +`fenix`ise ekran değişiklikleri arasında kaybetme endişesi duymadığınız ancak o hizmete ihtiyaç duyduğunuzda canlı olmasını beklediğiniz hizmetler içindir. Temel olarak, kullanılmayan controller/service/class elden çıkaracak, ancak ihtiyacınız olduğunda yeni bir örneği "küllerden yeniden yaratacaktır".
247 248
248 -Proceeding with the differences between methods: 249 +Metodlar arasındaki farklarla devam edelim:
249 250
250 -- Get.put and Get.putAsync follows the same creation order, with the difference that the second uses an asynchronous method: those two methods creates and initializes the instance. That one is inserted directly in the memory, using the internal method `insert` with the parameters `permanent: false` and `isSingleton: true` (this isSingleton parameter only purpose is to tell if it is to use the dependency on `dependency` or if it is to use the dependency on `FcBuilderFunc`). After that, `Get.find()` is called that immediately initialize the instances that are on memory. 251 +- Get.put ve Get.putAsync, ikincisinin eşzamansız bir yöntem kullanması farkıyla aynı oluşturma sırasını takip eder: bu iki yöntem, örneği oluşturur ve başlatır. Bu, `permanent: false` ve `isSingleton: true` parametreleriyle `insert` dahili yöntemi kullanılarak doğrudan belleğe eklenir (bu isSingleton parametresinin tek amacı, "bağımlılık" bağımlılığını kullanıp kullanmayacağını söylemektir. veya `FcBuilderFunc` bağımlılığını kullanacaksa). Bundan sonra, bellekteki örnekleri hemen başlatan `Get.find()` çağrılır.
251 252
252 -- Get.create: As the name implies, it will "create" your dependency! Similar to `Get.put()`, it also calls the internal method `insert` to instancing. But `permanent` became true and `isSingleton` became false (since we are "creating" our dependency, there is no way for it to be a singleton instace, that's why is false). And because it has `permanent: true`, we have by default the benefit of not losing it between screens! Also, `Get.find()` is not called immediately, it wait to be used in the screen to be called. It is created this way to make use of the parameter `permanent`, since then, worth noticing, `Get.create()` was made with the goal of create not shared instances, but don't get disposed, like for example a button in a listView, that you want a unique instance for that list - because of that, Get.create must be used together with GetWidget.  
253 253
254 -- Get.lazyPut: As the name implies, it is a lazy proccess. The instance is create, but it is not called to be used immediately, it remains waiting to be called. Contrary to the other methods, `insert` is not called here. Instead, the instance is inserted in another part of the memory, a part responsible to tell if the instance can be recreated or not, let's call it "factory". If we want to create something to be used later, it will not be mix with things been used right now. And here is where `fenix` magic enters: if you opt to leaving `fenix: false`, and your `smartManagement` are not `keepFactory`, then when using `Get.find` the instance will change the place in the memory from the "factory" to common instance memory area. Right after that, by default it is removed from the "factory". Now, if you opt for `fenix: true`, the instance continues to exist in this dedicated part, even going to the common area, to be called again in the future. 254 +- Get.create: Adından da anlaşılacağı gibi, dependency'i (bağımlılığı) "create(oluşturacak)"! `Get.put()`a benzer şekilde, örneklemeye `insert` dahili yöntemini de çağırır. Ancak `permanent` doğru oldu ve`isSingleton` yanlış oldu (bağımlılığımızı "creating", bunun tek bir örnek olmasının bir yolu yok, bu yüzden yanlış). Ve `permanent: true` olduğu için, varsayılan olarak ekranlar arasında kaybetmeme avantajına sahibiz! Ayrıca `Get.find()` hemen çağrılmaz, çağrılacak ekranda kullanılmayı bekler. `permanent` parametresini kullanmak için bu şekilde yaratılmıştır, o zamandan beri, fark edilmeye değer `Get.create()`, örneğin bir bu liste için benzersiz bir örnek istiyorsanız - bu nedenle Get.create GetWidget ile birlikte kullanılmalıdır.
  255 +
  256 +- Get.lazyPut: Adından da anlaşılacağı gibi tembel bir işlemdir. Örnek yaratılır, ancak hemen kullanılmak üzere çağrılmaz, çağrılmayı bekler. Diğer yöntemlerin aksine burada `insert` denilmez. Bunun yerine, instance hafızanın başka bir bölümüne, örneğin yeniden oluşturulup oluşturulamayacağını söylemekle sorumlu bir kısma eklenir, buna "factory" diyelim. Daha sonra kullanılmak üzere bir şey yaratmak istersek, şu anda kullanılanlarla karıştırılmayacak. Ve işte burada `fenix` sihirleri devreye giriyor: `fenix: false` bırakmayı seçerseniz ve `smartManagement`ınız `keepFactory` değilse, o zaman `Get.find` kullanılırken örnek bellekteki yeri değiştirecektir. "factory"den ortak örnek bellek alanına. Bundan hemen sonra, varsayılan olarak "factory"den kaldırılır. Şimdi, `fenix: true` seçeneğini seçerseniz, örnek bu özel bölümde var olmaya devam eder, hatta gelecekte tekrar çağrılmak üzere ortak alana gider.
255 257
256 ## Bindings 258 ## Bindings
257 259
258 -One of the great differentials of this package, perhaps, is the possibility of full integration of the routes, state manager and dependency manager.  
259 -When a route is removed from the Stack, all controllers, variables, and instances of objects related to it are removed from memory. If you are using streams or timers, they will be closed automatically, and you don't have to worry about any of that.  
260 -In version 2.10 Get completely implemented the Bindings API.  
261 -Now you no longer need to use the init method. You don't even have to type your controllers if you don't want to. You can start your controllers and services in the appropriate place for that.  
262 -The Binding class is a class that will decouple dependency injection, while "binding" routes to the state manager and dependency manager.  
263 -This allows Get to know which screen is being displayed when a particular controller is used and to know where and how to dispose of it.  
264 -In addition, the Binding class will allow you to have SmartManager configuration control. You can configure the dependencies to be arranged when removing a route from the stack, or when the widget that used it is laid out, or neither. You will have intelligent dependency management working for you, but even so, you can configure it as you wish. 260 +Bu paketin en büyük farklılıklarından biri, belki de route'ların, state manager'in(durum yöneticisinin) ve dependency manager(bağımlılık yöneticisinin) tam entegrasyonu olasılığıdır.
  261 +Stackten bir rota kaldırıldığında, onunla ilgili tüm controller'lar, değişkenler ve nesne örnekleri bellekten kaldırılır. Streams(Akışlar) veya timers(zamanlayıcılar) kullanıyorsanız, bunlar otomatik olarak kapatılır ve bunların hiçbiri için endişelenmenize gerek yoktur.
  262 +2.10 sürümünde Bindings API'sini tamamen uygulayın.
  263 +Artık init metodunu kullanmanıza gerek yok. İstemiyorsanız controller yazmanız bile gerekmez. Bunun için uygun yerde controller ve servislerinizi başlatabilirsiniz.
  264 +Binding sınıfı, state manager(durum yöneticisine) ve dependency manager(bağımlılık yöneticisine) giden rotaları "binding" ederken, dependency injection(bağımlılık enjeksiyonunu) ayıracak bir sınıftır.
  265 +Bu, belirli bir controller(denetleyici) kullanıldığında hangi ekranın görüntülenmekte olduğunu ve bunun nerede ve nasıl imha edileceğini bilmenizi sağlar.
  266 +Ayrıca Binding sınıfı, SmartManager yapılandırma kontrolüne sahip olmanızı sağlar. Stackten bir rota kaldırılırken veya onu kullanan pencere öğesi düzenlendiğinde veya hiçbirini yapmadığında düzenlenecek bağımlılıkları yapılandırabilirsiniz. Sizin için çalışan intelligent dependency management(akıllı bağımlılık yönetimine) sahip olacaksınız, ancak buna rağmen istediğiniz gibi yapılandırabilirsiniz.
265 267
266 ### Bindings class 268 ### Bindings class
267 269
268 -- Create a class and implements Binding 270 +- Bir sınıf oluşturun ve Binding'i uygulayın
269 271
270 ```dart 272 ```dart
271 class HomeBinding implements Bindings {} 273 class HomeBinding implements Bindings {}
272 ``` 274 ```
273 275
274 -Your IDE will automatically ask you to override the "dependencies" method, and you just need to click on the lamp, override the method, and insert all the classes you are going to use on that route: 276 +IDE'niz otomatik olarak sizden "dependencies(bağımlılıklar)" metodunu geçersiz kılmanızı isteyecektir ve sadece lambaya tıklamanız, metodu geçersiz kılmanız ve o rotada kullanacağınız tüm sınıfları eklemeniz yeterlidir:
275 277
276 ```dart 278 ```dart
277 class HomeBinding implements Bindings { 279 class HomeBinding implements Bindings {
@@ -291,8 +293,9 @@ class DetailsBinding implements Bindings { @@ -291,8 +293,9 @@ class DetailsBinding implements Bindings {
291 ``` 293 ```
292 294
293 Now you just need to inform your route, that you will use that binding to make the connection between route manager, dependencies and states. 295 Now you just need to inform your route, that you will use that binding to make the connection between route manager, dependencies and states.
  296 +Şimdi sadece rotanızı, route manager(rota yöneticisi), dependencies(bağımlılıklar) ve states(durumlar) arasında bağlantı kurmak için bu binding'i kullanacağınızı bildirmeniz gerekiyor.
294 297
295 -- Using named routes: 298 +- Adlandırılmış yolları kullanma:
296 299
297 ```dart 300 ```dart
298 getPages: [ 301 getPages: [
@@ -309,16 +312,16 @@ getPages: [ @@ -309,16 +312,16 @@ getPages: [
309 ]; 312 ];
310 ``` 313 ```
311 314
312 -- Using normal routes: 315 +- Normal yolları kullanma:
313 316
314 ```dart 317 ```dart
315 Get.to(Home(), binding: HomeBinding()); 318 Get.to(Home(), binding: HomeBinding());
316 Get.to(DetailsView(), binding: DetailsBinding()) 319 Get.to(DetailsView(), binding: DetailsBinding())
317 ``` 320 ```
318 321
319 -There, you don't have to worry about memory management of your application anymore, Get will do it for you. 322 +Orada, artık uygulamanızın bellek yönetimi konusunda endişelenmenize gerek yok, Get bunu sizin için yapacak.
320 323
321 -The Binding class is called when a route is called, you can create an "initialBinding in your GetMaterialApp to insert all the dependencies that will be created. 324 +Bir rota çağrıldığında Binding sınıfı çağrılır, oluşturulacak tüm bağımlılıkları eklemek için GetMaterialApp'ınızda bir "initialBinding" oluşturabilirsiniz.
322 325
323 ```dart 326 ```dart
324 GetMaterialApp( 327 GetMaterialApp(
@@ -329,10 +332,10 @@ GetMaterialApp( @@ -329,10 +332,10 @@ GetMaterialApp(
329 332
330 ### BindingsBuilder 333 ### BindingsBuilder
331 334
332 -The default way of creating a binding is by creating a class that implements Bindings.  
333 -But alternatively, you can use `BindingsBuilder` callback so that you can simply use a function to instantiate whatever you desire. 335 +Binding oluşturmanın varsayılan yolu, Binding'leri uygulayan bir sınıf oluşturmaktır.
  336 +Ancak alternatif olarak, istediğiniz her şeyi somutlaştırmak için bir işlevi kullanabilmeniz için `BindingsBuilder` callback kullanabilirsiniz.
334 337
335 -Example: 338 +Örnek:
336 339
337 ```dart 340 ```dart
338 getPages: [ 341 getPages: [
@@ -354,25 +357,25 @@ getPages: [ @@ -354,25 +357,25 @@ getPages: [
354 ]; 357 ];
355 ``` 358 ```
356 359
357 -That way you can avoid to create one Binding class for each route making this even simpler. 360 +Bu şekilde, her rota için bir Binding sınıfı oluşturmaktan kaçınarak bunu daha da basitleştirebilirsiniz.
358 361
359 -Both ways of doing work perfectly fine and we want you to use what most suit your tastes. 362 +Her iki şekilde de gayet iyi çalışıyor ve zevkinize en uygun olanı kullanmanızı istiyoruz.
360 363
361 ### SmartManagement 364 ### SmartManagement
362 365
363 -GetX by default disposes unused controllers from memory, even if a failure occurs and a widget that uses it is not properly disposed.  
364 -This is what is called the `full` mode of dependency management.  
365 -But if you want to change the way GetX controls the disposal of classes, you have `SmartManagement` class that you can set different behaviors. 366 +GetX, bir hata oluşsa ve onu kullanan bir pencere öğesi düzgün şekilde atılmamış olsa bile, varsayılan olarak kullanılmayan controller(denetleyicileri) bellekten atar.
  367 +Bu, `full` dependency management(bağımlılık yönetimi) modu olarak adlandırılan şeydir.
  368 +Ancak GetX'in sınıfların imhasını kontrol etme şeklini değiştirmek istiyorsanız, farklı davranışlar ayarlayabileceğiniz `SmartManagement` sınıfınız var.
366 369
367 #### How to change 370 #### How to change
368 371
369 -If you want to change this config (which you usually don't need) this is the way: 372 +Bu yapılandırmayı (genellikle ihtiyacınız olmayan) şekilde değiştirmek istiyorsanız:
370 373
371 ```dart 374 ```dart
372 void main () { 375 void main () {
373 runApp( 376 runApp(
374 GetMaterialApp( 377 GetMaterialApp(
375 - smartManagement: SmartManagement.onlyBuilder //here 378 + smartManagement: SmartManagement.onlyBuilder //burada
376 home: Home(), 379 home: Home(),
377 ) 380 )
378 ) 381 )
@@ -381,30 +384,30 @@ void main () { @@ -381,30 +384,30 @@ void main () {
381 384
382 #### SmartManagement.full 385 #### SmartManagement.full
383 386
384 -It is the default one. Dispose classes that are not being used and were not set to be permanent. In the majority of the cases you will want to keep this config untouched. If you new to GetX then don't change this. 387 +Varsayılan olanıdır. Kullanılmayan ve kalıcı olarak ayarlanmamış sınıfları dispose edin. Çoğu durumda, bu yapılandırmayı el değmeden tutmak isteyeceksiniz. Eğer Get için yeniyseniz, bunu değiştirmeyin.
385 388
386 #### SmartManagement.onlyBuilder 389 #### SmartManagement.onlyBuilder
387 -With this option, only controllers started in `init:` or loaded into a Binding with `Get.lazyPut()` will be disposed. 390 +Bu seçenekle, yalnızca `init:` ile başlatılan veya `Get.lazyPut()` ile bir Binding'e yüklenen controller(denetleyiciler) dispose edilecektir.
388 391
389 -If you use `Get.put()` or `Get.putAsync()` or any other approach, SmartManagement will not have permissions to exclude this dependency. 392 +`Get.put()` veya `Get.putAsync()` veya başka bir yaklaşım kullanırsanız, SmartManagement bu bağımlılığı dışlamak için izinlere sahip olmayacaktır.
390 393
391 -With the default behavior, even widgets instantiated with "Get.put" will be removed, unlike SmartManagement.onlyBuilder. 394 +Varsayılan davranışla, SmartManagement.onlyBuilder'ın aksine "Get.put" ile örneklenen widget'lar bile kaldırılacaktır.
392 395
393 #### SmartManagement.keepFactory 396 #### SmartManagement.keepFactory
394 397
395 -Just like SmartManagement.full, it will remove it's dependencies when it's not being used anymore. However, it will keep their factory, which means it will recreate the dependency if you need that instance again. 398 +SmartManagement.full gibi, artık kullanılmadığında bağımlılıklarını kaldıracaktır. Ancak, factory'leri koruyacak, yani bu örneğe tekrar ihtiyacınız olursa dependency(bağımlılığı) yeniden yaratacaktır.
396 399
397 ### How bindings work under the hood 400 ### How bindings work under the hood
398 -Bindings creates transitory factories, which are created the moment you click to go to another screen, and will be destroyed as soon as the screen-changing animation happens.  
399 -This happens so fast that the analyzer will not even be able to register it.  
400 -When you navigate to this screen again, a new temporary factory will be called, so this is preferable to using SmartManagement.keepFactory, but if you don't want to create Bindings, or want to keep all your dependencies on the same Binding, it will certainly help you.  
401 -Factories take up little memory, they don't hold instances, but a function with the "shape" of that class you want.  
402 -This has a very low cost in memory, but since the purpose of this lib is to get the maximum performance possible using the minimum resources, Get removes even the factories by default.  
403 -Use whichever is most convenient for you. 401 +Bindings, başka bir ekrana gitmek için tıkladığınız anda oluşturulan geçici factory'ler oluşturur ve ekran değişirken animasyon gerçekleşir gerçekleşmez yok edilir.
  402 +Bu o kadar hızlı gerçekleşir ki analyzer onu kaydedemez bile.
  403 +Bu ekrana tekrar gittiğinizde, yeni bir geçici factory çağrılır, bu nedenle SmartManagement.keepFactory kullanmak yerine bu tercih edilir, ancak Bindings oluşturmak istemiyorsanız veya tüm bağımlılıklarınızı aynı Binding üzerinde tutmak istiyorsanız, mutlaka size yardımcı olacaktır.
  404 +Factory'ler çok az bellek kaplarlar, örnekleri tutmazlar, ancak istediğiniz sınıfın "shape" olan bir fonksiyona sahiptirler.
  405 +Bunun bellekte maliyeti çok düşüktür, ancak bu kitaplığın amacı, minimum kaynakları kullanarak mümkün olan maksimum performansı elde etmek olduğundan, Get factory bile varsayılan olarak kaldırır.
  406 +Hangisi sizin için daha uygunsa onu kullanın.
404 407
405 ## Notes 408 ## Notes
406 409
407 -- DO NOT USE SmartManagement.keepFactory if you are using multiple Bindings. It was designed to be used without Bindings, or with a single Binding linked in the GetMaterialApp's initialBinding. 410 +- Birden çok Bindings kullanıyorsanız SmartManagement.keepFactory KULLANMAYIN. Bindings olmadan veya GetMaterialApp'in initialBinding'inde bağlantılı tek bir Binding ile kullanılmak üzere tasarlanmıştır.
408 411
409 -- Using Bindings is completely optional, if you want you can use `Get.put()` and `Get.find()` on classes that use a given controller without any problem.  
410 -However, if you work with Services or any other abstraction, I recommend using Bindings for a better organization. 412 +- Bindings kullanmak tamamen isteğe bağlıdır, isterseniz belirli bir denetleyiciyi kullanan sınıflarda `Get.put()` ve `Get.find()` kullanabilirsiniz.
  413 +Ancak, Services veya başka bir abstract class ile çalışıyorsanız, daha iyi bir organizasyon için Bindings'i kullanmanızı öneririm.